Hraju si s ATmegou162 a chtěl bych z ní posílat data a v PC je zpracovávat. Ale nějak mi data nepřicházejí. Krystal 16MHz. Připojení je takovéto:
RS - ATmega162
RXD - TXD (PD1)
TXD - RXD (PD0)
Kód: Vybrať všetko
#define BAUD_RATE 9600
#define BAUD_PRESCALE (((F_CPU / (BAUD_RATE * 16UL))) - 1)
Kód: Vybrať všetko
void UART_Transmit(unsigned char data)
{
while ( !( UCSR0A & (1<<UDRE0)) );
UDR0 = data;
}
void Setup()
{
UBRR0L = BAUD_PRESCALE;
UBRR0H = (BAUD_PRESCALE >> 8);
UCSR0C = (3 << UCSZ00);
UCSR0B |= (1 << TXEN0);
}
void uart_putstring(const char *progmem_s )
{
register char c;
while ( (c = pgm_read_byte(progmem_s++)) )
{
UART_Transmit(c);
}
UART_Transmit(0x0d);
UART_Transmit(0x0a);
}
a v nekonečné smyčcese snažím o poslání písmena H
Kód: Vybrať všetko
uart_putstring(PSTR("H"));