// C++ code
/*
programa 2:
utilizar interrupção OVF no timer 2 com intervalo de 10ms
para piscar um led com frequência de 1 segundo (fazer um contador para
trocar o estado do led a cada 100 ocorrências)
*/
/* REFERENCE :
*
* LAB Name: Arduino Timer Overflow Interrupt
* Author: Khaled Magdy
* For More Info Visit: www.DeepBlueMbedded.com
*/
#define led_pin 7
volatile byte counter = 0;
bool led_value = LOW;
ISR(TIMER2_OVF_vect)
{
TCNT2 = 99; // Timer Preloading
// Handle The Timer Overflow Interrupt
counter++;
}
void setup()
{
pinMode(led_pin, OUTPUT);
Serial.begin(9600);
TCCR2A = 0; // Init Timer2A
TCCR2B = 0; // Init Timer2B
TCCR2B |= B00000111; // Prescaler = 1024
TCNT2 = 99; // Timer Preloading
TIMSK2 |= B00000001; // Enable Timer Overflow Interrupt
}
void loop()
{
Serial.println("counter: " + (String)counter);
if ((counter >= 100)) { led_value = !led_value; counter = 0; }
digitalWrite(led_pin, led_value);
}
/*
Aluno: Luiz Paulo Grafetti Terres
Data : Jun 14, 2024
Email: [email protected] || [email protected]
*/