In einem völlig anderen Projekt hatte ich den seriellen Port so eingerichtet, dass die ganzen Funktionen der Standard C Library den seriellen Port als Konsole verwenden.
So kann man z.B. puts() und printf() für Ausgaben, sowie fgets() und scanf() für Eingaben benutzen. Beispiel:
Code:
char buffer[100];
int main(void) {
initserial();
while (1) {
fgets(buffer,sizeof(buffer),stdin);
if (strcmp_P(buffer,PSTR("help"))==0) {
puts_P(PSTR("Can I help you?"));
}
}
return 0;
}
Wer diese PSTR() Sachen nicht kennt: Zeichenketten belegen doppelt Speicher (und zwar RAM und ROM), wenn man es nicht so macht. Die Funktion puts_P gibt eine Zeichenkette aus, die im Programmspeicher liegt, während puts vorraussetzt, dass die Zeichenkette im RAM liegt.
Schlecht: puts("Hallo");
Besser: puts_P(PSTR("Hallo"));
Lesezeichen