Генератор НЧ на pic
|
tolyan249 |
Дата: Ср, 20.10.2010, 17:33 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
183
Замечания:
±
На сайте с 11.10.2007
Статус:
Offline
|
Кто подскажет как сделать генератор нч c синусом на выходе от 1гц-до 1кгц на pic16F628A ,может у кого наработки есть.
если знаешь,помоги.
|
|
|
|
|
deskjet |
Дата: Чт, 21.10.2010, 09:10 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
151
Замечания:
±
На сайте с 20.06.2009
Статус:
Offline
|
ШИМ вам поможет: с помощью тригонометрической функции вычисляется текущая фаза сигнала, переводится в значение ШИМ и выводится в порт
За 20 8 дней ни одного сгоревшего микроконтроллера. PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
|
|
|
|
|
terrarus |
Дата: Чт, 21.10.2010, 14:04 | Сообщение # 3 |
Группа:
Пользователи
Ранг:
Разобрался
Сообщений:
542
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Quote (deskjet) ШИМ вам поможет: с помощью тригонометрической функции вычисляется текущая фаза сигнала, переводится в значение ШИМ и выводится в порт Интересно очень! A можно поподробнее?
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал
terrarus - Чт, 21.10.2010, 14:04
|
|
|
|
|
deskjet |
Дата: Чт, 21.10.2010, 14:20 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
151
Замечания:
±
На сайте с 20.06.2009
Статус:
Offline
|
Сам еще только планирую этим заняться. Так как PICSimulatorIDE не умеет вычислять тригонометрические функции, собираюсь находить их как отношение длин сторон прямоугольного треугольника попутно избавляясь от операций с дробными числами. В общем пока только наброски проекта.
За 20 8 дней ни одного сгоревшего микроконтроллера. PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
|
|
|
|
|
terrarus |
Дата: Чт, 21.10.2010, 15:52 | Сообщение # 5 |
Группа:
Пользователи
Ранг:
Разобрался
Сообщений:
542
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Понравилась идея сделать синусоидальный генератор на пике. Вот с ходу что у меня получилось. И даже не плохой синус вышел в первом приближении. Может кто предложит что-нибудь получше?
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал
terrarus - Чт, 21.10.2010, 15:56
|
|
|
|
|
deskjet |
Дата: Чт, 21.10.2010, 16:08 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
151
Замечания:
±
На сайте с 20.06.2009
Статус:
Offline
|
Жаль у меня протэуса нет рабочего. А тот, что выложен у нас работает без сбоев?
За 20 8 дней ни одного сгоревшего микроконтроллера. PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
|
|
|
|
|
terrarus |
Дата: Чт, 21.10.2010, 16:10 | Сообщение # 7 |
Группа:
Пользователи
Ранг:
Разобрался
Сообщений:
542
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
У меня на работе стоит 7.6 версия а на домашних 7.7 и я не наблюдаю сбоев. PS. Для тех у кого нет протеуса привожу программу. Из неё сразу видна и дея реализации синусоидального напряжения при помощи ШИМ. Device = 16F877 Xtal 20 TRISC = %00000000 Dim I As Byte MAIN: For I = 0 To 256 Step 1 HPWM 1, I, 5000 Next For I = 0 To 256 Step -1 HPWM 1, I, 5000 Next GoTo MAIN Вот здесь можно взять все рабочие версии: http://terrarus.ucoz.ru/proton_....p3.html http://terrarus.ucoz.ru/proton_plus_ide/proton/tools/proteus7_6.html http://terrarus.ucoz.ru/proton_....p2.html http://terrarus.ucoz.ru/proton_plus_ide/proton/tools/mplab_8_53.html http://terrarus.ucoz.ru/proton_....05.html http://terrarus.ucoz.ru/proton_....ul.html Только качайте при помощи dmaster
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал
terrarus - Чт, 21.10.2010, 16:23
|
|
|
|
|
deskjet |
Дата: Чт, 21.10.2010, 16:14 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
151
Замечания:
±
На сайте с 20.06.2009
Статус:
Offline
|
Ссылкой на рабочую версию не поделитесь? For I = 0 To 256 Step -1 как это работает? Чему равно I, например, на десятом шаге? Если I байт то максимальное значение 255, разве нет? PS: спасибо за ссылки.
За 20 8 дней ни одного сгоревшего микроконтроллера. PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
Сообщение отредактировал
deskjet - Чт, 21.10.2010, 16:29
|
|
|
|
|
terrarus |
Дата: Чт, 21.10.2010, 16:32 | Сообщение # 9 |
Группа:
Пользователи
Ранг:
Разобрался
Сообщений:
542
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Quote (deskjet) For I = 0 To 256 Step -1 как это работает? Чему равно I, например, на десятом шаге? На десятом шаге I lдолжно получить значение равное 9 Quote (deskjet) Если I байт то максимальное значение 255, разве нет? Cовершенно верно. А в чем сомнение у Вас? Извините маленькое уточнение лучше 255 не 256. Хотя и так работает нормально.
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал
terrarus - Чт, 21.10.2010, 16:35
|
|
|
|
|
deskjet |
Дата: Чт, 21.10.2010, 16:40 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
151
Замечания:
±
На сайте с 20.06.2009
Статус:
Offline
|
Если I будет равно 9, тогда зачем знак минус (Step -1)? PICSimulatorIDE сильно заругается если ему подсунуть байт размером 256 единиц) Видимо параметр I задает скважность, тогда по моему график сигнала будет иметь пилообразную форму а не синусоидальную, ведь I у вас изменяется линейно.
За 20 8 дней ни одного сгоревшего микроконтроллера. PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
Сообщение отредактировал
deskjet - Чт, 21.10.2010, 16:53
|
|
|
|
|
Matrix252005 |
Дата: Чт, 21.10.2010, 17:08 | Сообщение # 11 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
713
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Приятного времени суток. Ребята, а как у Вас работает эта сточка??? For I = 0 To 256 Step -1 Step -1 - это означает, что счет должен идти в обратном порядке.... Т.е. должно быть: For I = 255 To 0 Step -1
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
|
terrarus |
Дата: Чт, 21.10.2010, 17:19 | Сообщение # 12 |
Группа:
Пользователи
Ранг:
Разобрался
Сообщений:
542
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Device = 16F877 XTAL 4 TRISC = %00000000 Dim I As Byte MAIN: For I = 0 To 255 Step 1 HPWM 1, I, 5000 Next For I = 255 To 0 Step -1 HPWM 1, I, 5000 Next GoTo MAIN Вот как это работает. Но почему то в первом моем сообщении действительно есть ошибка: MAIN: For I = 0 To 256 Step 1 HPWM 1, I, 5000 Next For I = 0 To 256 Step -1 ' как эта ошибка образовалась не могу понять. А по поводу формы - чтобы не ломать перья, лучше запустить симуляцию приложенного проекта и посмотреть на виртуальном осцилографе и все станет ясно. HPWM 1, I, 5000 Next GoTo MAIN
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
|
|
|
|
|
deskjet |
Дата: Пт, 22.10.2010, 08:38 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
151
Замечания:
±
На сайте с 20.06.2009
Статус:
Offline
|
terrarus, не желаете протестировать в протэусе схему из статьи "Подключение трех кнопок на один вывод порта МК"?
За 20 8 дней ни одного сгоревшего микроконтроллера. PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
|
|
|
|
|
terrarus |
Дата: Пт, 22.10.2010, 16:31 | Сообщение # 14 |
Группа:
Пользователи
Ранг:
Разобрался
Сообщений:
542
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Давате попробую. Я уже использовал такую штуку. Принцип простой - настраиваем один порт как аналоговый и измеряем при помощи АЦП (оператора ADIn) падение напряжения на базовом резисторе на который подаются разные напряжения от нескольких кнопок и разной величины других резисторов. Таким образом можно не только 3 кнопки организовать а даже 30 на одном входе. Принцип резисторной матрицы.
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал
terrarus - Пт, 22.10.2010, 16:34
|
|
|
|
|
deskjet |
Дата: Пт, 22.10.2010, 16:42 | Сообщение # 15 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
151
Замечания:
±
На сайте с 20.06.2009
Статус:
Offline
|
Вас не затруднит выложить схему устройства (простую "от руки")? Я прорабатывал различные варианты, в том числе и с резисторами, и с большим числом кнопок но, как мне показалось, у них недостаточная надежность. Может быть ваша схема лишена этого недостатка? 30 кнопок - это по моему многовато: АЦП пика имеет фактическую разрядность равную 8 (1 байт), то есть на одну кнопку приходится 255/30=8,5 единиц шкалы. Нужно ведь учитывать влияние помех и разброс сопротивлений резисторов (значения напряжений от двух соседних кнопок могут частично перекрывать друг друга).
За 20 8 дней ни одного сгоревшего микроконтроллера. PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
Сообщение отредактировал
deskjet - Пт, 22.10.2010, 18:35
|
|
|
|