Генератор НЧ на pic - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 6123456»
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Генератор НЧ на pic
Генератор НЧ на pic
tolyan249 Дата: Ср, 20.10.2010, 17:33  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 166
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

Кто подскажет как сделать генератор нч c синусом на выходе от 1гц-до 1кгц на pic16F628A ,может у кого наработки есть.

если знаешь,помоги.
ЯНДЕКС Дата: 20.10.2010
deskjet Дата: Чт, 21.10.2010, 09:10  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 151
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

ШИМ вам поможет: с помощью тригонометрической функции вычисляется текущая фаза сигнала, переводится в значение ШИМ
и выводится в порт


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
terrarus Дата: Чт, 21.10.2010, 14:04  |                                                                                                                Сообщение # 3
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 542
Репутация: 16   ±
Замечания:   ±
На сайте с 21.08.2008

Статус: Offline

Quote (deskjet)
ШИМ вам поможет: с помощью тригонометрической функции вычисляется текущая фаза сигнала, переводится в значение ШИМ
и выводится в порт

Интересно очень! A можно поподробнее?


Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал terrarus - Чт, 21.10.2010, 14:04
deskjet Дата: Чт, 21.10.2010, 14:20  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 151
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Сам еще только планирую этим заняться. Так как PICSimulatorIDE не умеет вычислять тригонометрические функции,
собираюсь находить их как отношение длин сторон прямоугольного треугольника попутно избавляясь от
операций с дробными числами. В общем пока только наброски проекта.


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
terrarus Дата: Чт, 21.10.2010, 15:52  |                                                                                                                Сообщение # 5
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 542
Репутация: 16   ±
Замечания:   ±
На сайте с 21.08.2008

Статус: Offline

Понравилась идея сделать синусоидальный генератор на пике.
Вот с ходу что у меня получилось. И даже не плохой синус вышел в первом приближении.
Может кто предложит что-нибудь получше?
Прикрепления: gen_sin_U.rar(39Kb)


Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал terrarus - Чт, 21.10.2010, 15:56
deskjet Дата: Чт, 21.10.2010, 16:08  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 151
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Жаль у меня протэуса нет рабочего. А тот, что выложен у нас работает без сбоев?

За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
terrarus Дата: Чт, 21.10.2010, 16:10  |                                                                                                                Сообщение # 7
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 542
Репутация: 16   ±
Замечания:   ±
На сайте с 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
Репутация: 5   ±
Замечания:   ±
На сайте с 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
Репутация: 16   ±
Замечания:   ±
На сайте с 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
Репутация: 5   ±
Замечания:   ±
На сайте с 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
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 672
Репутация: 20   ±
Замечания:   ±
На сайте с 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
Репутация: 16   ±
Замечания:   ±
На сайте с 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
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

terrarus, не желаете протестировать в протэусе схему из статьи "Подключение трех кнопок на один вывод порта МК"?

За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
terrarus Дата: Пт, 22.10.2010, 16:31  |                                                                                                                Сообщение # 14
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 542
Репутация: 16   ±
Замечания:   ±
На сайте с 21.08.2008

Статус: Offline

Давате попробую.
Я уже использовал такую штуку. Принцип простой -
настраиваем один порт как аналоговый и измеряем при помощи АЦП (оператора ADIn) падение напряжения на базовом резисторе на который подаются разные напряжения от нескольких кнопок и разной величины других резисторов. Таким образом можно не только 3 кнопки организовать а даже 30 на одном входе. Принцип резисторной матрицы.


Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал terrarus - Пт, 22.10.2010, 16:34
deskjet Дата: Пт, 22.10.2010, 16:42  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 151
Репутация: 5   ±
Замечания:   ±
На сайте с 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
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Генератор НЧ на pic
Страница 1 из 6123456»
Поиск: