Forum: Mikrocontroller und Digitale Elektronik ARM7 Programmierung


von Sergey S. (Firma: ARM LPC2134, uVision3, in C) (serik00)


Lesenswert?

Guten Abend,

brauche eure Hilfe

ich will auf einem ARM7 programmieren.

Dazu ein Final state machine:

Der Datenstrom wird mittels Interrupt aus dem UART ausgelesen. Das heißt 
wenn ein Byte im UART vorliegt wird Interruppt ausgelösst.

Die Telegramme werden abgespeichert.

Dann muss ich einen Adressenabgleich implementieren werden

Dann findet die CRC-Prüfung statt.


Also bei mir geht es um folgende Aufgaben:
Daten aus dem UART auslesen, Interruppt-Routinen, Timer einbauen, 
CRC-Prüfung.

Könnt ihr mein FSM erweitern und korrigieren.
Wie könnte das ganze z.B aussehen?
Vielen Dank im Voraus.

von holger (Gast)


Lesenswert?

>Könnt ihr mein FSM erweitern und korrigieren.

Sieht doch gut aus. Mach es so.

>Wie könnte das ganze z.B aussehen?

So wie du oben beschrieben hast.

von Sergey S. (Firma: ARM LPC2134, uVision3, in C) (serik00)


Lesenswert?

Danke,

Ich muss auch Timer benutzen, wie kann ich diesen hier einbinden?
Wozu dienen sie? Soll so ein Timer z.B die empfangene Bytes zählen, um 
zu erfahren wo die Destination Adress im Telegramm vorliegt?

von Christian J. (elektroniker1968)


Lesenswert?

Ich muss auch Timer benutzen, wie kann ich diesen hier einbinden?
Wozu dienen sie? Soll so ein Timer z.B die empfangene Bytes zählen, um
zu erfahren wo die Destination Adress im Telegramm vorliegt?
----

Die Zeichen werden in der Uart ISR gezählt. Wozu Timer dienen sollte 
doch klar sein, zum Zählen von Takten oder externen Ereignissen oder als 
Zeitbasis.

von Robert T. (robertteufel)


Lesenswert?

Timer kann auch als eine Art Watchdog dienen. Jedes empfangene Byte 
setzt den Timer zurueck (Interrupt Routine). Wenn 10 Sekunden nichts 
mehr gekommen ist, dann... Aktion festlegen, z.B.
- Idle Mode fuer Strom sparen
- LED anschalten weil erwartete Daten nicht gekommen sind
- Das ganze System zuruecksetzen.....

Ansonsten Timer also Zeitbasis fuer Datalogger.
In der ersten Minute 123456 bytes empfangen
In der zweiten Minute 234123 bytes...

Timer sind immer fuer etwas gut

Robert

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.