#define LED_PIN 13 // Define the LED pin (built-in LED on pin 13 for Arduino Uno)
void setup() {
// Set LED pin as output
pinMode(LED_PIN, OUTPUT);
// Initialize serial communication at 9600 baud rate
Serial.begin(115200);;
// Set up TIMER0
TCCR0A = 0; // Clear Timer/Counter Control Register A
TCCR0B = 0; // Clear Timer/Counter Control Register B
// Load TIMER0 with initial value for 10 ms interval
TCNT0 = 100;
// Set prescaler to 64
TCCR0B |= (1 << CS01) | (1 << CS00); // CS01 and CS00 are bits for 64 prescaler
}
void loop() {
// Check if TIMER0 overflow has occurred
if (TIFR0 & (1 << TOV0)) { // Check TIMER0 overflow flag in TIFR0 register
// Toggle LED state
digitalWrite(LED_PIN, !digitalRead(LED_PIN));
// Print LED state to serial monitor
Serial.print("LED is now: ");
Serial.println(digitalRead(LED_PIN) ? "ON" : "OFF");
// Clear the overflow flag by writing a 1 to it
TIFR0 |= (1 << TOV0);
// Reload TIMER0 with initial value for 10 ms interval
TCNT0 = 100;
}
}