Witam,
Mam problemz AtMega z tematu. Ustawiam konfigurację Timerów wg manualki: tryb CNC; prescaler; zezwolenie na przerwania CompareMatch. Po ustawieniu tego odblokowuję przerwania przez "sei();" i.. procesor się resetuje. Dodam też, że taki sam kod działa bez problemów na AtMega 16/32/64. Czy przy pisaniu kodu na te procesory (324/644/1284) trzeba coś szczególnego zmieniać czego nie trzeba było robić przy "normalnej" AtMega 32 ?
Widzę, że reset wywołuje się gdy dochodzi do próby wymuszenia przerwania, tzn. gdy nie ustawiam żadnych przerwań polecenie "sei();" nie powoduje żadnej kolizji z programem, ale gdy już próbuję (czy to Timer, USATR) za każdym razem wyskakuje reset.
WatchDog jest wyłączony;
kod do ustawienia Timera0:
Mam problemz AtMega z tematu. Ustawiam konfigurację Timerów wg manualki: tryb CNC; prescaler; zezwolenie na przerwania CompareMatch. Po ustawieniu tego odblokowuję przerwania przez "sei();" i.. procesor się resetuje. Dodam też, że taki sam kod działa bez problemów na AtMega 16/32/64. Czy przy pisaniu kodu na te procesory (324/644/1284) trzeba coś szczególnego zmieniać czego nie trzeba było robić przy "normalnej" AtMega 32 ?
Widzę, że reset wywołuje się gdy dochodzi do próby wymuszenia przerwania, tzn. gdy nie ustawiam żadnych przerwań polecenie "sei();" nie powoduje żadnej kolizji z programem, ale gdy już próbuję (czy to Timer, USATR) za każdym razem wyskakuje reset.
WatchDog jest wyłączony;
kod do ustawienia Timera0:
Kod: C / C++