#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
void timer_init( void )
{
TCCR0A = 1<<WGM01;
OCR0A = 207;
TIMSK0 = 1<<OCIE0A;
sei();
}
volatile uint16_t maindata = 0;
void uart_char ( char c )
{
maindata = c<<1;
maindata |= 1<<9;
TCCR0B = 1<<CS01;
}
void uart_str ( char *str )
{
while(*str)
{
uart_char(*str++);
_delay_ms(1000);
}
}
ISR ( TIMER0_COMPA_vect)
{
if( maindata & 0x01)
{
PORTB = PORTB | (1<<PORTB5);
}
else
{
PORTB = PORTB & (~(1<<PORTB5));
}
maindata = maindata >> 1;
if( maindata == 0)
{
TCCR0B = 0;
TCNT0 = 0;
}
}
char datasend[] = "Manoj";
int main( void )
{
DDRB = 1<<DDB5;
timer_init();
TCCR0B = 1<<CS01;
PORTB = 0x01;
_delay_ms(1000);
while(1)
{
uart_char(0xFF);
_delay_ms(1000);
uart_str(datasend);
_delay_ms(1000);
}
}