Hallo
Ich bin auch verwirrt, irgendwie scheint der Lesebuffer der UART-LIB nicht richtig zu funktionieren:
Code:
#include "RP6RobotBaseLib.h"
char eingang[15];
int main(void)
{
char i;
initRobotBase(); // Initialisierung – IMMER ALS ERSTES AUFRUFEN!
powerON();
while(true)
{
writeString_P("Bitte etwas eingeben -max 10 Zeichen-");
writeString_P("\n\r");
i=0;
do
{
while(!getBufferLength()); //warten solange keine Zeichen im Buffer
while(getBufferLength()) // Zeichen aus Buffer einlesen
eingang[i++]=readChar();
}while(i==0);
eingang[i]=0; // Endekennung String nach letztem Zeichen
writeString(eingang);
writeString_P("\n\r");
} // Endlosschleife
return 0;
}
Die Ausgabe dazu:
Code:
Terminal cleared!
s
Bitte etwas eingeben -max 10 Zeichen-
# 1
1
Bitte etwas eingeben -max 10 Zeichen-
Bitte etwas eingeben -max 10 Zeichen-
# 12
1
Bitte etwas eingeben -max 10 Zeichen-
2
Bitte etwas eingeben -max 10 Zeichen-
# 1234
1
Bitte etwas eingeben -max 10 Zeichen-
234
Bitte etwas eingeben -max 10 Zeichen-
# 1234567890
1
Bitte etwas eingeben -max 10 Zeichen-
234567890
Bitte etwas eingeben -max 10 Zeichen-
Aber ich kenne mich damit nicht wirklich aus. Vielleicht mal eine aktuellere Lib installieren? Es gab da mal ein Update beim Zeicheneinlesen soweit ich mich erinnere.
Wichtig ist zu wissen, dass der RP6Loader keine einzelnen Zeichen schicken kann (leider) sondern immer die komplette Zeile nach [Return]. Das Hyperterminal kann das aber (mit 34800Baud).
Gruß
mic
Lesezeichen