Помогите кто может. ATmega8 - мне необходимо сформировать серию импульсов, при этом
возможность регулирования частоты и регулирования скважности. Применяю Таймер-2 в режиме СТС
для регулировки частоты. Дальше частоту с PB3(OC2) соединяю с PD5(T1) и входом таймера Т1, а конкретно
работать будет по регистру ТСCR1A - по сравнению с Pwm1a и Pwm1b в режиме FAST PWM. Вот тут и засада. Если задаю Config Timer1 = Pwm , Pwm = 9 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up , Prescale = 8
то все работает.Но мне необходимо работать с внешней частотой, которая подаются с PB3(OC2) на PD5(T1).
Но к сожелению на выходе PB1(OC1A) ничего нет. По даташиту А. В. Евстифеев Микроконтроллеры AVR семейств Tiny и Mega
фирмы ATMEL, подбираю СS10,CS11,CS12, но таймер не работает (вернее не восприменяет внешний такт).
КОД----------------
$regfile = "m8def.dat"
$crystal = 800000
Dim A As Byte , B As Byte
Dim C As Byte , D As Byte
Config Pind.0 = Input
Config Pind.1 = Input
Config Pind.5 = Input
Config Pinb.1 = Output
Config Pinb.3 = Output
Config Pinc.0 = Output
Outp_1 Alias Pinb.3
Outp_2 Alias Pinc.0
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Tccr2 = &B00011101
'Здесь надо сконфигурировать таймер1
'TCCR1A = &B01000001
'TCCR1B = &B00001111
Config Timer1 = Pwm , Pwm = 9 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up , Prescale = 8
Do
A = Getadc(1)
B = A / 20
Ocr2 = B
C = Getadc(2)
D = C / 2
Pwm1a = D
Pwm1b = 150
Loop
Return
End
Пока писал вам питицию - меня осенило
Вот как правильно ------- Tccr1a = &B10000001
Tccr1b = &B00001110 --------- УРА
Отредактировано AleksanderG (2012-10-25 22:28:06)
