Forum: Mikrocontroller und Digitale Elektronik Interruptsteuerung Software UART


von Jörg S. (Gast)


Lesenswert?

Ich nutze einen Software UART, den ich auch mit INT1 verbunden
habe. Dieser ist auf eine fallende Flanke eingerichtet.
Kann ich dabei einen Timer laufen lassen, der mir die Zeit
mißt bis zur Nächsten?

Mir ist schon bewußt das der ext. Interrupt eine höhere
Priorität als der Overflow des Timers hat.

Weiterhin habe ich festgestellt, daß wenn ich den Interrupt
bei diesem Event deaktiviere, die Daten über den Soft-UART
nicht richtig eingelesen werden.

Benötigt der Interrupt zur fallenden Flanke in einer gewissen
zeit auch die positive Flanke?

von crazy horse (Gast)


Lesenswert?

du solltest den ext. Int nur zur Erkennung des Startbits nutzen.
ext. int ->  timer starten, interrupt nach halber Bitzeit, ext. int
sperren
-1. Timer-int: schauen, ob am Eingangspin immer noch L-Pegel anliegt.
ja: startbit gültig nein: nur ein spike
-timer auf volle Bitzeit umstellen
-je Timerint ein Bit einlesen, schieben, 8mal
9. Timerint: stopbit prüfen
Byte ist empfangen, Timer stoppen, ext. Int wieder freigeben.

von Jörg S. (Gast)


Lesenswert?

das hab ich mir auch schon überlegt.
Ich möchte jedoch wissen ob der Soft-UART mit einer
eingestellten Baudrate die Daten ebenso empfängt.

Folgendes Problem dabei: Das LIN-Protokoll sendet
vor den eigentlichen Daten ein Break und ein
Sync-Feld(0x55). Sync und Daten werden mit Baudrate
übermittelt.

??????|_____________|¯|_|?|_|?|_|?? . . . ??????????

ich würd gern auf das Sync-Feld triggern.

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
Noch kein Account? Hier anmelden.