Hallo, Ich bin noch ein ziemlicher Anfänger und meine Frage ist wahrscheinlich ziemlich Plump, dennoch komme ich auf keinen Grünen Zweig und hoffe, dass ihr mir vlt. weiterhelfen könnt ;). Ich habe zwei uC, welche sich gegenseitig Buchstaben, sowie Werte schicken können (über UART ... C++). Der Interrupt wird ausgelöst, sobald ich bei einem uC etwas empfange. Mein kleines Problem ist, dass ich gerne unterscheiden will, ob er mir jetzt das char - Array (10 Buchstaben)sendet, oder den integar Wert. Denn beide haben den selben IRQ - Handler. Senden und Empfangen jeweils für den Wert und jeweils für die Buchstaben funktioniert, nur die Fallunterscheidung nicht. Genau dort fehlt mir noch ein kleiner Denkanstoß, da die Buchstaben sowie der Wert zufällig gewählt sind. D.h. ich kann nicht in der IR Abfragen, ob diese eintreffen. (Außerdem folgt das senden des Buchstabenarrays und des Wertes, keinem Muster (d.h. es kann mehrmals der Wert geschickt werden ohne den Buchstaben usw.) Ich hoffe das war nicht zu kompliziert erklärt, Danke schonmal für die Rückmeldungen
Guten Morgen. Vergiss es - ob ein Integer oder ein Chararray gesendet wurde, kann die UART nicht erkennen. Für die UART kommen nur mehrere Bytes an. Ob diese zusammengesetzt dann als Integer oder Chararray interpretiert werden, ist deine Sache. Du brauchst irgendeine Art Protokoll. Zum Beispiel: Zunächst kommt ein 'I' für Integer und anschließend wird der Intergerwert übertragen. Dein uC weiß dann, dass es die nächsten zwei Bytes als Integer zu werten hat. Kommt zunächst ein 'C' für Char, weiß dein uC, dass die folgenden 20 Bytes als char zu interpretieren sind. Kommt als erstes Zeichen ein anderes, wird es ignoriert, bis ein 'I' oder ein 'C' kommt. Ich hoffe, einen Denkanstoß gegeben zu haben. Michael
Vielen Dank für die vorallem schnelle Rückmeldung. An ein Start-Byte hab ich auch schon gedacht gehabt, denn ein Terminierungsbyte für das Array hatte ich schon. Nur das wollte nicht ganz funktionieren... Habs allerdings gerade zum laufen gebracht, war wohl einfach schon zu spät ;). Vielen Dank nochmal! Lg Masu
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.