Witam
Od jakiegoś czasy chce zrobić zegarek na atmega8. Do odliczania sekund użyłem
atmega chodzi na wewnętrznym taktowaniu MHz, po jakiś 4 min późni się 1s. Czy na zewnętrznym kwarcu 12MHz będzie lepiej i jakoś trzeba odwołać się do tego taktowania (czy starczy zmiana samych fusbitów)
ps. ma ktoś może schemat użycia atmegi jako obrotomierza, chodzi o podłączenie między atmegą a kablem w samochodzie z którego idą impulsy (ok 5V)
Od jakiegoś czasy chce zrobić zegarek na atmega8. Do odliczania sekund użyłem
unsigned int i=0;
void wait(long t)
{
long cnt = 0;
TCCR1A = 0;
TCCR1B = 3<<CS10;
TCNT1 = 0;
TIFR |= (1<<TOV1);
while(cnt < t)
{
if(TIFR & (1<<TOV1))
{
cnt += 65536;
TIFR |= (1<<TOV1);
}
cnt= (cnt & ~65535) | TCNT1;
}
}
//-----------------------------------------------------------------------------------
// Główna funkcja programu
int main(void)
{
// Inicjuje wyświetlacz
lcd_init();
LCD_DISPLAY(LCDDISPLAY);
// Ustawia pozycję kursora
LCD_LOCATE(0,0);
char bufor[10];
while(1)
{
wait(15625);
i=i+1;;
itoa(i, bufor, 10);
LCD_LOCATE(0,0);
lcd_puts(bufor);
}
return 0;
}atmega chodzi na wewnętrznym taktowaniu MHz, po jakiś 4 min późni się 1s. Czy na zewnętrznym kwarcu 12MHz będzie lepiej i jakoś trzeba odwołać się do tego taktowania (czy starczy zmiana samych fusbitów)
ps. ma ktoś może schemat użycia atmegi jako obrotomierza, chodzi o podłączenie między atmegą a kablem w samochodzie z którego idą impulsy (ok 5V)