AVR - Realtidsklocka till lcd på färre klockcykler?
Postat: 13 mars 2012, 09:41:16
Har i nuläget en realtidsklocka med 1s interrupt där tiden skrivs ut till en lcd på formen hh:mm:ss
Klipper jag bort det övriga är koden något i stil med:
På samma sätt sen för minuter och timmar.
Alla de olika skrivningarna till lcd:n tar ganska många klockcykler i anspråk och känns klumpigt, någon som har tips på hur man kan lösa det snyggare?
Klipper jag bort det övriga är koden något i stil med:
Kod: Markera allt
#include "include/lcd.h"
#include "include/lcd.c"
ISR (TIMER2_OVF_vect)
{
time_increase_second();
}
void time_increase_second()
{
time.second++;
if (time.second > 59)
{
time.second = 0;
lcd_gotoxy(12,0);
lcd_puts("00");
time_increase_minute();
}
else if (time.second < 10)
{
itoa(time.second , buffer, 10);
lcd_gotoxy(12,0);
lcd_puts("0");
lcd_gotoxy(13,0);
lcd_puts(buffer);
}
else
{
itoa(time.second , buffer, 10);
lcd_gotoxy(12,0);
lcd_puts(buffer);
}
}
På samma sätt sen för minuter och timmar.
Alla de olika skrivningarna till lcd:n tar ganska många klockcykler i anspråk och känns klumpigt, någon som har tips på hur man kan lösa det snyggare?