Hallo
Baudrate und Übertragungsparameter fehlen und das Senden wurde nicht aktiviert (TX-Enable), schau mal ins Datenblatt des Mega16 unter USART;) Hier meine Initialisierung für 2400, 8,none,1:
Code:
#define UBRR_BAUD_2400 390 // Baudrate auf 2400 setzen
UBRRH = UBRR_BAUD_2400 >> 8;
UBRRL = (uint8_t) UBRR_BAUD_2400;
UCSRC = (1<<URSEL)|(0<<USBS)|(3<<UCSZ0); // 8, none, 1
UCSRB |= (1<<TXEN); // Senden enablen
Den Wert für das UBRR-Register (390 für 2400 Baud) errechnet man so:
Kontrollertakt/16/Baud-1 oder 15000000/16/2400-1
(Bei asuro und RP6 wurde der USART schon vom Bootloader richtig und komplett initialisiert)
Zusätzlich fehlt noch die finale Endlosschleife im Programm und das obligatorische return:
Code:
int main(void) {
writeString("NIBOBee sagt\n\r");
writeString("Hallo Welt!\n\r");
while(1); // ohne stürzt der Kontroller ins Nirwana!
return(0); wird nie erreicht
}
btw. wird die main()-Funktion ohne Parameter aufgerufen: int main(void)...
Gruß
mic
Lesezeichen