Hallo Leute.
Ich habe wieder mal ein für mich unerklärliches Problem....
Und schonwieder mit dem UART!
Ich habe nun meine Steuerung mit dem Mega8535 beendet und starte mit der Einheit mit dem Mega128.
Wie man das so macht will man zwischenwerte per UART ausgeben.
Um auf dem Punkt zu kommen:
Da kommt nicht so ganz das Richtige an:
Bild hier
Ankommen sollte:
Code:
OK
CNF1:
HEXWERT
CNF2:
HEXWERT
CNF3:
HEXWERT
1
2
3
hier mein init:
Code:
void UART_init(void){
UBRR0L = 3;
UCSR0B = (1<<RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
UCSR0C = (1<<UCSZ01)|(1<<UCSZ00);
}
void UART_transmit(uint8_t c){
while(!(UCSR0A & (1<<UDRE0)));
UDR0 = c;
}
void UART_transmit_string(uint8_t *string){
while(!(UCSR0A & (1<<UDRE0)));
while( *string){ UART_transmit (*string++); }
}
F_CPU ist 7,372800 MHz
UBRR0L = 3 wie im Datenblatt... um Sicher zu gehen....
EDIT:
Es sieht halt nach falscher Bausrate aus, aber 3 stimmt zu dieser Taktfrequenz. Die Fuses Stimmen auch. also versteh ich es nicht.
BAUD = 115200
Könnt Ihr mir helfen???
Lesezeichen