void trata_timer0() { set_timer0(131 + get_timer0()); vtimer++; if (vtimer == 1) { vtimer = 0; segundos++; // incrementa os segundos if ((segundos % 60) == 0) { // quando fechar 1 minuto, o display é atualizado segundos = 0; // reinicia o contador incrementa_minutos(1); parar_alarme(); // verifica se existe alarme configurado para exibir nesta hora if (var_alarme_configurado && (var_alarme_horas == temp_global_horas && var_alarme_minutos == temp_global_minutos)) { var_alarme_tocando = 1; output_high(PIN_A0); // pino alarme } // exibe apenas se o alarme nao estiver sendo configurado if (var_alarme_configurando == 0) { exibe_relogio(temp_global_horas, temp_global_minutos); } } } }
int main(void) { init_timer0(); // count each BIT_TS_WIDTH-clock length intervals, starting at some random point... zero_timer(); while(1) { uint8_t v = get_timer0(); if (v < BIT_TS_WIDTH) continue; zero_timer(); sample_bit(); // so, this will rise 125000 times per second (approx) } return 0; }
void trata_timer0() { set_timer0(131 + get_timer0()); vtimer++; if (vtimer == 10) { vtimer = 0; seconds++; if (seconds > 59) { fireAlarmState = 0; output_low(PIN_B1); seconds = 0; minuteElapsed(); } } }
void tempo() { set_timer0 (131 - get_timer0 ()); conta++; //contagem das interrupções //printf("%d\n",conta); }