Paso 3: programación
Este es un programa simple para AVR ATmega16...
#define F_CPU 1000000UL
#include
#include
#define USART_BAUDRATE 1200 / / valor de la velocidad en baudios
#define BAUD_PRESCALE ((F_CPU / (USART_BAUDRATE * 16UL)) - 1)
voidusart_init()
{
UCSRB | = (1 << RXEN) | (1 <
UCSRC | = (1 << URSEL) | (1 <
UBRRL = BAUD_PRESCALE;
UBRRH = (BAUD_PRESCALE >> 8);
}
unsignedintusart_getch()
{
mientras que ((UCSRA & (1 << RXC)) == 0);
{
}
volver UDR;
}
voidusart_putch (unsigned char enviar)
{mientras que (! () UCSRA & (1 <
{
}
UDR = enviar;
}
voidputstr (unsigned char * str)
{
int i = 0;
while(Str[i]!='\0')
{
usart_putch(Str[i]);
_delay_ms(100);
i ++;
}
}
void main()
{
usart_init();
DDR = 0XFF;
PORTC = 0XFF;
while(1)
{
int a = usart_getch();
if(a=='F')
{
PORTC = 0b00000101;
}
if(a=='B')
{
PORTC = 0b00001010;
}
if(a=='R')
{
PORTC = 0b00000110;
}
if(a=='L')
{
PORTC = 0b00001001;
}
}
}