Also in Bascom configuriert man ganz am Anfang einen "Uart"-Interrupt. Wenn jetzt ein Zeichen über die Schnittstelle kommt, geht der µC in die ISR und liest das Zeichen ein. Alternativ kannst du auch einen Buffer erstellen, welcher sich solange mit Zeichen füllt, bis entweder der Buffer voll ist oder ein best. Zeichen (z.B. <CR>) empfangen wurde. Bis zu diesem Zeitpunkt passiert das alles im "Hintergrund", du kannst also währenddessen viele andere Sachen machen.
Du kannst natürlich auch den Eingang (RX) permanent abfragen, allerdings finde ich das sehr uneffizient und unelegant. Da sind Interrupts wesentlich besser, da diese nur aufgerufen werden, wenn es nötig ist.
Da die Zeichen dann aber noch im Buffer sind, musst du diese dann aus dem Buffer in eine Variable (in Bascom: String) einlesen. Diese zerlegst du dann in die einzelnen "Befehlsabschnitte". Jetzt kannst du die Daten wirklich nutzen.
Hier mal ein Pseudocode, welcher evtl. hilfreich sein könnte:
Code:
'Init-code
mache
...
Hauptschleife
isr_von_uart:
input befehle 'hier werden die Zeichen aus dem Buffer in eine Variable eingelesen
split befehle , ":" ' hier wird der ganze Befehl in einzelne Abschnitte geglidert, jeweils getrennt durch den Doppelpunkt
...
return
Wenn du das nicht verstehst, musst du nochmal fragen. Am besten wäre es aber, wenn du für einen konkreteren Code jemanden fragst, der sich mit C auskennt. Ich kann dir lediglich die Vorgehensweise erklären.
Gruß
Chris
Lesezeichen