Gast
#1806860
Hallo zusammen, ich bräuchte mal euer geschätztes Fachwissen in Sachen uart/usart. Ich benutze die usart mit getch und putch. Das funktioniert bis jetzt alles einwandfrei. Nun will ich den Befehl rprintf benutzen um meine Messergebnisse an den PC zu senden. Dazu initialisiere ich die uart library von Pascal Strang und gebe den rprintf Befehl. Der kommt auch am PC an. Nach dem rprintf Befehl wird die getch und putch Routine wieder initialisiert. Damit ich wieder mit getch und putch arbeiten kann. Und ab da tritt das Problem ein. Die getch und putch Routinen funktionieren nicht mehr wie gewünscht. Die getch routine funktioniert erst nach mehrmaligem Senden des gewünschten Zeichens und die Putch sendet nur Müll. Bei Pascal Strangs rprintf und uart brauche ich 1 Startbit, 8 Datenbits, 1 Stopbit. Parität keine. und bei den getch und putch Routinen 1 Startbit, 7 Datenbits, 2 Stopbits. Parität gerade. Ist es überhaupt möglich zwischen den zwei Initialisierungen zu wechseln? Ich arbeite mit AVR Studio und Win AVR. Programmiersprache ist C. Prozessor ATMega 32. kurzer Programmausschnitt: initusart(); // initialisiere UART (getch und putch) . . .//Programmablauf mit getch und putch routinen . . uartInit(); // initialisiere UART (Pascal Strang) uartSetBaudRate(9600); rprintfInit(uartSendByte); uartFlushReceiveBuffer(); rprintf("Ausgangsspannung1: %d digits",Ua1); _delay_ms(1000); initusart(); // Initialisiere UART (getch und putch) . . .// Programmablauf mit weiteren getch und putch routinen . Hoffe jemand von euch kann mir helfen :)