Witam,
Tak jak w tytule mam dość dziwny problem. Napisałem sobie bardzo prosty program w którym chciałem zobaczyć jak działa ADC + sterowanie serwem modelarskim. Doświadczenia robię na płytce stykowej.
Wygląda to tak że jeśli odczytuję rejestr ADCH w nieskończonej pętli programu (mam ustawiony tryb free running) to wszystko działa ok. Natomiast jeśli chcę odczytać ten rejestr w procedurze przerwania, to nic się nie dzieje. Ustawiłem sobie dla celów diagnostycznych zaświecenie diody LED jeśli program wejdzie w procedurę przerwania i oczywiście dioda się nie zaświeciła. Przejrzałem kilka razy datashit atmegi ale nie potrafię znaleźć błędu, stąd prośba o pomoc.
Oto fragment kodu:
Do obsługi serwa wykorzystuję przerwanie CTC Timer2 więc ogólnie przerwania chodzą, jedynie ADC nie chce się uruchomić.
Gdyby ktoś pytał dlaczego się uprałem skoro działa bez przerwania to odpowiadam - dlatego że chcę się nauczyć je uruchamiać.
Tak jak w tytule mam dość dziwny problem. Napisałem sobie bardzo prosty program w którym chciałem zobaczyć jak działa ADC + sterowanie serwem modelarskim. Doświadczenia robię na płytce stykowej.
Wygląda to tak że jeśli odczytuję rejestr ADCH w nieskończonej pętli programu (mam ustawiony tryb free running) to wszystko działa ok. Natomiast jeśli chcę odczytać ten rejestr w procedurze przerwania, to nic się nie dzieje. Ustawiłem sobie dla celów diagnostycznych zaświecenie diody LED jeśli program wejdzie w procedurę przerwania i oczywiście dioda się nie zaświeciła. Przejrzałem kilka razy datashit atmegi ale nie potrafię znaleźć błędu, stąd prośba o pomoc.
Oto fragment kodu:
Kod: text
Do obsługi serwa wykorzystuję przerwanie CTC Timer2 więc ogólnie przerwania chodzą, jedynie ADC nie chce się uruchomić.
Gdyby ktoś pytał dlaczego się uprałem skoro działa bez przerwania to odpowiadam - dlatego że chcę się nauczyć je uruchamiać.