Hallo
Du könntest aber z.B. ein kleines delay einbauen, oder eleganter auf das Zeilenende warten (\n).
Aha, das macht Sinn und funktioniert auch schon besser:
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<10) && (eingang[i-1] != '\n'));
sleep(50);
clearReceptionBuffer();
eingang[i]=0; // Endekennung String nach letztem Zeichen
writeString(eingang);
writeString_P("\n\r");
} // Endlosschleife
return 0;
}
Die Ausgabe dazu:
Code:
Terminal cleared!
Bitte etwas eingeben -max 10 Zeichen-
# 123
123
Bitte etwas eingeben -max 10 Zeichen-
# 1234567890
1234567890
Bitte etwas eingeben -max 10 Zeichen-
# 11223344556677889900
1122334455
Bitte etwas eingeben -max 10 Zeichen-
# juhu
juhu
Bitte etwas eingeben -max 10 Zeichen-
Der Unterschied beim Zeilenvorschub kommt davon dass bei Strings <10 das \n vom Senden auch im String ist. Aber das ist eher ein kosmetischer Fehler...
Gruß
mic
Lesezeichen