Witam!
Mam pewien problem, otóż napisałem funkcję obsługi przerwania od licznika T0 w atmega16 która wygląda następująco:
Do wejścia TOSC1 oraz TOSC2 mam podłączony kwarc zegarkowy.
Mój problem polega na tym że zegar działał poprawnie dopóki nie zacząłem zabawy z taktowaniem mikroprocesora zewnętrznym kwarcem. Od tamtej pory zegar działa 2 razy wolniej (a nie wydaje mi się żeby miało to coś wspólnego z częstotliwością taktowania uC). Sprawdzałem już na innym kwarcu 32,768 KHz i dalej to samo. Może jakieś sugestie? Dodam iż zmieniałem zarówno w pliku makefile jak i w programie wartość F_CPU ale nie przynosi to żadnych rezultatów.
Z góry dziękuję za pomoc.
Mam pewien problem, otóż napisałem funkcję obsługi przerwania od licznika T0 w atmega16 która wygląda następująco:
SIGNAL (SIG_OVERFLOW0)
{
if(licznik==128)
{
s++;
if(s==60)
{
s=0;
m++;
}
if(m==60)
{
m=0;
h++;
}
if(h==24)
{
h=0;
}
licznik=0;
}
licznik++;
}
Do wejścia TOSC1 oraz TOSC2 mam podłączony kwarc zegarkowy.
Mój problem polega na tym że zegar działał poprawnie dopóki nie zacząłem zabawy z taktowaniem mikroprocesora zewnętrznym kwarcem. Od tamtej pory zegar działa 2 razy wolniej (a nie wydaje mi się żeby miało to coś wspólnego z częstotliwością taktowania uC). Sprawdzałem już na innym kwarcu 32,768 KHz i dalej to samo. Może jakieś sugestie? Dodam iż zmieniałem zarówno w pliku makefile jak i w programie wartość F_CPU ale nie przynosi to żadnych rezultatów.
Z góry dziękuję za pomoc.