100ms Pulse CTC Mode
subratasarkar20
c_cpp
a year ago
799 B
11
Indexable
/*
* GccApplication13.cpp
*
* Created: 27-09-2024 15:16:43
* Author : subrs
*/
#define F_CPU 1000000UL
#include <avr/io.h>
void timer1_init_ctc(void)
{
TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode
TCCR1B |= (1 << CS11) | (1 << CS10); // Set prescaler to 64
OCR1A = 1562; // 100ms delay with 1MHz clock and 64 prescaler { ((FCPUxTime)/Prescaler)-1 }
TIMSK |= (1 << OCIE1A); // Enable interrupt on compare match
}
void delay_100ms()
{
TCNT1 = 0; // Reset the timer counter
TIFR |= (1 << OCF1A); // Clear the output compare match flag
while (!(TIFR & (1 << OCF1A))); // Wait until the OCF1A flag is set
}
int main(void)
{
DDRB |= 1<<PB0;
timer1_init_ctc();
while (1)
{
PORTB ^= 1<<PB0;
delay_100ms();
}
return 0;
}
Editor is loading...
Leave a Comment