Witam!
Pisząc przykładowe programy na atmegę8 nie moge uporać się z problemem dot. opóźnień. Gdy w pętli sprawdzam warunek "zatrzymuję" działanie programu na np. 1 sekundę, podczas gdy po wrzuceniu kodu do atmegi opóźnienia są wielokrotnie dłuższe.
Pisząc program na początku ustawiam częstotliwosc pracy avr'a tą linijką
Rownież w burn o macie przez który wrzucam kod do avr'a ustawiam czestotliwosc pracy na 1 Mhz i niestety zamiast opóźnienia 1 sekundy mam +/- 8 sekund. Przestawiałem w burn o macie na wyższe czestotliwosci, lub w kodzie wpisywałem
8000000L i niestety, ale opóźnienia nie są zgodne z moimi założeniami. Jedyne co narazie zauwazyłem, że dzieje się to tylko, gdy program jest wstrzymywany w warunku, który jest w pętli. Po opóźnieniu wstawiałem break; i mimo to nie dawało to poprawnego efektu. Nie sądzę, żeby atmega była uszkodzona, skasowałem nawet jej zawartośc "doctorem" - bez zmian.
Za wszelkie odpowiedzi będę bardzo wdzięczny.
Pozdrawiam
Pisząc przykładowe programy na atmegę8 nie moge uporać się z problemem dot. opóźnień. Gdy w pętli sprawdzam warunek "zatrzymuję" działanie programu na np. 1 sekundę, podczas gdy po wrzuceniu kodu do atmegi opóźnienia są wielokrotnie dłuższe.
Pisząc program na początku ustawiam częstotliwosc pracy avr'a tą linijką
#define F_cpu 1000000LRownież w burn o macie przez który wrzucam kod do avr'a ustawiam czestotliwosc pracy na 1 Mhz i niestety zamiast opóźnienia 1 sekundy mam +/- 8 sekund. Przestawiałem w burn o macie na wyższe czestotliwosci, lub w kodzie wpisywałem
8000000L i niestety, ale opóźnienia nie są zgodne z moimi założeniami. Jedyne co narazie zauwazyłem, że dzieje się to tylko, gdy program jest wstrzymywany w warunku, który jest w pętli. Po opóźnieniu wstawiałem break; i mimo to nie dawało to poprawnego efektu. Nie sądzę, żeby atmega była uszkodzona, skasowałem nawet jej zawartośc "doctorem" - bez zmian.
Za wszelkie odpowiedzi będę bardzo wdzięczny.
Pozdrawiam