Gyro-Sensor kontrollerad bil (3 / 4 steg)
Steg 3: programmering
Detta är ett enkelt program för AVR ATmega16...
#define F_CPU 1000000UL
#include
#include
#define USART_BAUDRATE 1200 / / Baud Rate värde
#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()
{
medan ((UCSRA & (1 << RXC)) == 0);
{
}
returnera UDR;
}
voidusart_putch (unsigned char skicka)
{medan (! () UCSRA & (1 <
{
}
UDR = skicka;
}
voidputstr (unsigned char * str)
{
int jag = 0;
While(Str[i]!='\0')
{
usart_putch(Str[i]);
_delay_ms(100);
i ++;
}
}
void main)
{
usart_init();
DDRC = 0XFF;
PORTC = 0XFF;
While(1)
{
int en = usart_getch();
IF(a=='F')
{
PORTC = 0b00000101;
}
IF(a=='B')
{
PORTC = 0b00001010;
}
IF(a=='R')
{
PORTC = 0b00000110;
}
IF(a=='L')
{
PORTC = 0b00001001;
}
}
}