Hat einer der Kollegen etwas Asche für mich übrig ?
:oops:
Druckbare Version
Hat einer der Kollegen etwas Asche für mich übrig ?
:oops:
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:
F_CPU ist 7,372800 MHzCode: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++); }
}
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???
Hallo,
Der Fehler lag am Pegelwandler! :oops:
Ich hab an meinem Mega8535-Testboard einen Pegelwandler drauf, daher habe ich den am Mega128 nicht getestet. Der ging zwar zuvor wunderbar, aber anscheinend war die Platine unter Spannung und es hat sich was gelöst...
Hab den Pegelwandler nämlich in ein D-Sub9 gehäuse engebaut....
naja... zum Verrükt werden so sachen.
Aber ich muss sagen, wenn man garnicht weiterkommt, dann hört man am besten auf, und packt es am nächsten tag wieder an... Ansonsten grämt man sich in ein immer tieferes Loch und sucht an der Falschen Stelle.