| Форум РадиоКот https://radiokot.ru/forum/ |
|
| Программирование таймера в Bascom AVR https://radiokot.ru/forum/viewtopic.php?f=57&t=78146 |
Страница 1 из 1 |
| Автор: | АртёмБ [ Вт сен 18, 2012 16:39:43 ] |
| Заголовок сообщения: | Программирование таймера в Bascom AVR |
Здравствуйте Программирую AVR микроконтроллеры в BascomAVR нужно сделать ик бампер, знаю что в микроконтроллерах авр, в частности меге 8 имеется возможность формировать шим сигнал, на каком-то сайте нашёл прогу: $regfile = "m8def.dat" 'используем Mega8 $crystal = 16000000 'частота кварцевого резонатора 16mHz 'Генерация частоты 36kHz 'Настраиваем Timer1 Config Timer1 = Counter , Edge = Rising , Prescale = 8 , Compare A = Toggle ' Расчитываем Compare1a ' тактовая частота (kHz) / частота TSOPa (kHz) / 2 = Compare ' 16000 / 36 / 2 = 222 Compare1a = 222 'PortB.1 - выход сигнала 'PinC.0 - считываем состояние TSOPa 'Portd.0 - сигнальный светодиод Config Pinb.1 = Output Config Portd.0 = Output Config Pinc.0 = Input Start Timer1 Do If Pinc.0 = 0 Then Portd.0 = 1 Else Portd.0 = 0 End If Loop на форумах поспрашивал, вроде работает, формирует на выходе В1 сигнал с частотой 36 кГц( как раз для ТСОПа), решил взять её, загрузил, прещитал comparea1 но ничего не работает, почему? Тогда попробовал сам написать код: $regfile = "m8def.dat" $crystal = 1000000 Config Timer1 = Pwm , Pwm = 9 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up , Prescale = 8 Config Portb = Output Config Portd = Input Config Portc = Output Set Portc.1 Waitms 500 Reset Portc.1' эти строки не имеют смысла, они нужны просто для того что бы светодиод мигнув пару раз показал работает ли микроконтроллер или нет, к стати это пригодилось Waitms 500 Set Portc.1 Waitms 500 Reset Portc.1 Do Pwm1a = 1500' опытном путём было выяснено что именно это значение нужно для того что бы ТСОП понимал микроконтроллер Loop End однако мне объяснили что при PWM=9 невозможно записать Pwm1a=1500, подскажите пожалуйсто что можно сделать? И ещё дальность срабатывания бампера, указанная в статье откуда я взял первый код равна 30 см у меня же при запуске моего кода получилось всего 15см и срабатывания на этом расстоянии не уверенные(светодиод начина с 10см от препятствия мигает), я не понимаю с чем это связанно толи с кодом, то ли со схемой(собственно схемы нет, я просто подключил ТСОП к батарейке, а к нему светодиод для индикации), может нужно добавить какие-то средства, для избавления от помех? В общем помогите пожалуйсто! Заранее спасибо! |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


