Witam,
Robiłem to kilkanaście razy na innych procesorach, a nie mogę zrobić na ATmega88PA.
link do DSa:
http://www.atmel.com/images/Atmel-8271-8-bit-...PA-168A-168PA-328-328P_datasheet_Complete.pdf
opis rejestrów TIMER0 na stronie 105
Timer1 i Timer2 mam ustawione w trybie PWM i działają bez zarzutu. Walczę już 2 dzień i nie rozumiem pewnych mechanizmów. - włączenie Timera0 powoduje, że pętla główna nie działa...
Do portu PC0 (TQFP32) mam podłączoną diodę LED.
Zegar 1MHz (wewnętrzny oscylator 8MHz i włączony fusebit "CKDIV8", który dzieli przez 8)
Częstotliwości PWM i wypełnienia sprawdzałem oscyloskopem i działają poprawnie.
poniższy kod działa jak powinien:
na porcie PC0 mam prostokąt 100Hz
na PB1 dioda się rozjaśnia i gaśnie i tak w kółko:
natomiast gdy dodam init TIMER0 i obsługę przerwania,
na porcie PC0 (White_LED) nie mam nic, a na dodatek rozjaśnianie PWM na PB1 (OCR1A) przestaje działać (LED świeci się ciągle):
Jakieś pomysły?
Robiłem to kilkanaście razy na innych procesorach, a nie mogę zrobić na ATmega88PA.
link do DSa:
http://www.atmel.com/images/Atmel-8271-8-bit-...PA-168A-168PA-328-328P_datasheet_Complete.pdf
opis rejestrów TIMER0 na stronie 105
Timer1 i Timer2 mam ustawione w trybie PWM i działają bez zarzutu. Walczę już 2 dzień i nie rozumiem pewnych mechanizmów. - włączenie Timera0 powoduje, że pętla główna nie działa...
Do portu PC0 (TQFP32) mam podłączoną diodę LED.
Zegar 1MHz (wewnętrzny oscylator 8MHz i włączony fusebit "CKDIV8", który dzieli przez 8)
Częstotliwości PWM i wypełnienia sprawdzałem oscyloskopem i działają poprawnie.
poniższy kod działa jak powinien:
Kod: C / C++
na porcie PC0 mam prostokąt 100Hz
na PB1 dioda się rozjaśnia i gaśnie i tak w kółko:
natomiast gdy dodam init TIMER0 i obsługę przerwania,
na porcie PC0 (White_LED) nie mam nic, a na dodatek rozjaśnianie PWM na PB1 (OCR1A) przestaje działać (LED świeci się ciągle):
Kod: C / C++
Jakieś pomysły?