/*
#include <avr/io.h>
void delay_normal_mode(uint16_t delay_count) {
TCCR1A = 0x00;
TCCR1B = 0x05;
TCNT1 = 0;
while (TCNT1 < delay_count) {
}
TCCR1B = 0x00;
}
int main(void) {
DDRB |= (1 << PB0);
while (1) {
PORTB |= (1 << PB0);
delay_normal_mode(15625);
PORTB &= ~(1 << PB0);
delay_normal_mode(15625);
}
}
*/
#include <avr/io.h>
void delay_ctc_mode(uint16_t compare_value) {
TCCR1A = 0x00;
TCCR1B = 0x0D;
OCR1A = compare_value;
TCNT1 = 0;
while (!(TIFR1 & (1 << OCF1A))) {
}
TIFR1 |= (1 << OCF1A);
TCCR1B = 0x00;
}
int main(void) {
DDRB |= (1 << PB0);
while (1) {
PORTB |= (1 << PB0);
delay_ctc_mode(15625);
PORTB &= ~(1 << PB0);
delay_ctc_mode(15625);
}
}