Hallo,
ich versuche grade eine Verbindung über die RS232 Schnittstelle ziwschen meinem ATMEGA8 und PC herzustellen. Also Windows-Empfangssoftware verwende ich HyperTerminal. Mein UART-Code (von mikrocontroller.net) sieht so aus:
Wenn ich das ganze laufen lasse, empfange ich über HyperTerminal lauter a Zeichen, es sollten aber lauter x Zeichen sein. Hab ich irgendwo einen Fehler gemacht?Code:#include <avr/io.h> #define F_CPU 16000000L #define BAUD 9600L #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1) #define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) #define BAUD_ERROR ((BAUD_REAL*1000)/BAUD-1000) #if((BAUD_ERROR>10) || (BAUD_ERROR<-10)) #error FEHLER! BAUD Rate fehlerhaft!!! #endif int main(void) { UCSRB|=(1<<TXEN); UCSRC|=(1<<URSEL) | (3<<UCSZ0); UBRRH=UBRR_VAL >>8; UBRRL=UBRR_VAL & 0xFF; while(1){ while(!(UCSRA & (1<<UDRE))) { } UDR='x'; } return 0; }
Gruß
cesupa







Zitieren

Lesezeichen