/*Temporizador: marca intervalos de tempo, gera sinais com certa periodicidade,
mede a duração de eventos, controla saída por modulação por largura de pulso (pwm)*/
//Relogio na serial modo normal
#define TRUE 1
void setup() {
Serial.begin(9600);
/*inicializando TC1*/
TCCR1A = 0;
TCCR1B = 1<<CS12; //CLK/256
}
void loop() {
uint8_t seg=0, minu=0, hora=0;
char msg[100];
sprintf(msg, "%02dH %02dM %02dS\n", hora, minu, seg);
Serial.print(msg);
while(TRUE){
while((T1FR1 & (1<<TOV1)) == 0);
T1FR1 = T1FR1 | TOV1;
seg++;
if(seg == 60){ seg = 0; minu++;
if(minu == 60){ minu = 0; hora++;
if(hora == 24) hora = 0;
}
}
sprintf(msg, "%02dH %02dM %02dS\n", hora, minu, seg);
Serial.print(msg);
}
}