@ACE, parang ganito ang psuedo code para sa increment ng bawat value... (hour, min,sec)
// A psuedo code...
// a system with 4MHz clock oscillator
// set TIMER0:
// prescale 1:16; TMR0 = 6; overflow ever 4ms or 250Hz
// a counter will be set to count up to 250 to produce a 1sec overflow.
int1 TIMER0_overflow;
//interrupt service routine for TIMER0
void timer0_ISR(void) //fires ever 4ms
{
static int8 counter = 0;
if (count>= 250)
{
count = 0;
TIMER0_oveflow = TRUE; // fires every 4ms * 250 = 1sec
}
}
void main(void)
{
int8 hour, min, sec;
while(1)
{
if (TIMER0_overflow)
{
TIMER0_overflow = FALSE; //reset
sec++;
if (sec>=60)
{
sec = 0;
min++;
if (min >= 60)
{
min = 0;
hour++;
if (hour >=24) hour = 0; //for 24Hours setting.
}
}
RENEW_DISPLAY();
}
}
}