Christoph B. schrieb:
> Leider klappt das nicht.
Vereinfacht gesagt: Du kannst einfach nicht programmieren.
Dein Code tut etwas anderes als du beschreibst.
Wenn die ersten 16 Zeichen im empfangenen Strin in einem der 100
Einträge vorhanden sind, blinkt die LED.
Der String wird an einem obskuren Delimiter (vielleicht Semikolon)
zerlegt, an irgendeiner Stelle im Arry abgelegt und dann werden
irgendwelche Variablen beeinflusst, womit man wohl erreichen will daß
der nächste Teil des Sttings woanders hin kommt.
Nein, da ist so viel dermassen durcheinander und erkennbar ohne PLan
zusammenkopiert, man kann dir nicht die gesamten fehlenden
Programmierkenntnisse beibringen. Frag einen, der das kann.
Man wird sicher nicht einen unendlich langen Strong einlesen.
Man wird sicher nicht in einem unsortierten Array nach einer
Übereinstimmung des Anfangs suchen.
Man wird sicher nicht per strtok in undefiniert lange Abschnitte
zerlegte Strings in möglicherweise zu kurze Array schreiben.
Man tut sich auch keinen Gefallen, ein Format zu erwarten aber nicht mal
ansatzweise zu prüfen, ob die Daten das Format haben. Und wenn man es
analysiert hat, braucht man keine Strings mehr zu vergleichen, sondern
z.B. 6 Bytes.
Und ein sprintf zu verwenden, um einen String zu kopieren, ist ein
deutliches Zeichen mangelnder Kompetenz.
> UB_Uart_ReceiveString(
Hmm, wenn das die Funktion ist
http://mikrocontroller.bplaced.net/wordpress/?page_id=2838
ist die auch saumässig schlecht definiert.
Kommt 50 Zeichen lang kein CarriageReturn wird einfach der Speicher
überschrieben.
Vergiss die vorgefertige Library. Die ist so schlecht wie dein Code.
Frag also auch nicht deren Ersteller ob er dir hilft.