hallo, versuche gerade per uart daten an meine serielle schnittstelle zu senden jedoch kommen im terminal immer nur punkte an, ich habe es hier mit einem beispielprogramm aus einem tutorial versucht, woran könnte es liegen? #include <avr/io.h> #define F_CPU 3686400 #define BAUD 9600 #define UBRR_BAUD ((F_CPU/(BAUD*16))-1) /* USART initialisieren */ void uart_init(void); int main(void) { unsigned char buffer; /* USART initialisieren */ uart_init(); while (1) { /* Warten bis Daten empfangen wurden */ while ( !(UCSRA & (1<<RXC)) ) ; /* Empfangsregister auslesen */ buffer = UDR; /* Warten bis der Sendepuffer frei ist */ while ( !( UCSRA & (1<<UDRE)) ) ; /* Daten in den Puffer schreiben und damit senden */ UDR = buffer; } } /* USART initialisieren */ void uart_init(void) { /* Baudrate einstellen ( Normaler Modus ) */ UBRRH = (unsigned char) (UBRR_BAUD>>8); UBRRL = (unsigned char) UBRR_BAUD; /* Aktivieren von receiver und transmitter */ UCSRB = (1<<RXEN)|(1<<TXEN); /* Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit */ UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); }
nimmst du nen MEGA ? dann mal die Fuse Bits kontrollieren. Bei mir lags immer daran. Und nimm am besten auch das HTerm Programm. Das stellt zu jedem enpfangenen Byte 4 Ansichten dar(Ansi, Hex, Dez, Binär)
hm fuse bits müssten passen, weil in assembler funktioniert das uart senden problemlos, ich habe bereits ein terminal das verschiedene ansichten hat, hm irgendwie sendet mir der atmega8 nur ..... ^^
Hast du mal "UDR = buffer" durch "UDR = 0xFF" oder dergl. ersetzt?
Hast du wirklich UDR = "31" geschrieben? Müsste eigentlich eher 0x31 heissen... Daran wird es aber eher nicht liegen. Hast du an den Baudrate gedreht?
hm jetzt sendet er: \0 und ein A mit so einem komische strich drüber
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.