Witam, próbuje wykonać prosty odtwarzacz midi w oparciu o mikrokontroler atmega8535. Bazując na przykładach z internetu udało mi się temat jakoś wstępnie ogarnąć. Niestety na atmedze nie uruchamia mi się zegar o który oparte mają być programy. Wszystko jakby "wisi". Dodam że programuję w C w środowisku Code Vision AVR. W celu zlokalizowania problemu uprościłem program do minimum i wygląda na to że funkcja Timer0_RegisterCallbackFunction nie rejestruje funkcji którą ma wołać zegar. Kod wygląda mniej więcej tak.
Na początku oczywiście
Potem dalej w programie:
No i testowo metoda Play wygląda tak:
Na moje rozumowanie zegar powinien wołać właśnie tę metodę a ona zmieniać stany na porcie D. Niestety wszystko wisi nic się kompletnie nie dzieje zarówno w rzeczywistości jak i na symulacjach w ISIS. Dodam że metoda Timer0_RegisterCallbackFunction jest zawarta w bibliotece time0.h
Na początku oczywiście
Timer0_Init(); Potem dalej w programie:
sbiBF(TCCR1B, CS10);
Timer0_RegisterCallbackFunction(Play);
No i testowo metoda Play wygląda tak:
void Play(void){
PORTD^=0x01;
}
Na moje rozumowanie zegar powinien wołać właśnie tę metodę a ona zmieniać stany na porcie D. Niestety wszystko wisi nic się kompletnie nie dzieje zarówno w rzeczywistości jak i na symulacjach w ISIS. Dodam że metoda Timer0_RegisterCallbackFunction jest zawarta w bibliotece time0.h
