Hallo!
Ich versuche mich gerad ein wenig an C und möchte gern Bytes vom PC empfangen und am PortC durch eine LED-Leiste anzeigen lassen. Hier mein Code (Aus verschiedensten Tutorials zusammenkopiert):
Was passiert ist dass die LED-Leiste GANZ kurz leuchtet (programmstart) und dann aus ist. Ich habe schon geschaut, ob es vllt mit 1200 Baud (im Terminal-Prog eingestellt) läuft, wegen des /8-Fuses, aber ist nicht. Hab den Ausgang (TXD) der USB-Uart-Bridge an RXD am Mega8 angeschlossen.Code:#include <inttypes.h> #include <avr/io.h> #define F_CPU 7372800L #define BAUD 9600L #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1) // clever runden #define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) // Reale Baudrate #define BAUD_ERROR ((BAUD_REAL*1000)/BAUD-1000) // Fehler in Promille int main(void) { UCSRB |= (1<<RXEN); // UART RX einschalten UCSRC |= (1<<URSEL)|(3<<UCSZ0); // Asynchron 8N1 UBRRH = UBRR_VAL >> 8; UBRRL = UBRR_VAL & 0xFF; DDRC = 0xFF; PORTC = 255; while (!(UCSRA & (1<<RXC))) // warten bis Zeichen verfuegbar ; { PORTC = UDR; }; }
Kann mir wer sagen, was ich falsch mache? Hab schon hier im Forum viel rumgelesen, aber dabei keine neuen Erkenntnisse gewonnen.
Lesezeichen