Forum: Mikrocontroller und Digitale Elektronik Beispiel von scheduler


von paul (Gast)


Lesenswert?

hallo zusammen,

ich möchte gern ein scheduler entwickelt, das jede 2s ein String über 
UART senden kann. Womit ich anfangen soll, habe ich keine Ahnung. Ich 
habe paar Beispiele hier im Forum gesehen aber finde ich sehr 
kompliziert für einen Anfänger.
Bitte kann jemanden mir helfen oder Hinweise geben.

Danke

MFG

Paul

: Verschoben durch User
von Stefan B. (stefan) Benutzerseite


Lesenswert?

1) Auf welchem Rechenknecht soll das laufen und womit programmierst du?

2) Klappen diese Teilaufgaben bereits:

2a) String über UART ausgeben

2b) Timer für 2s Intervalle

2c) Scheduler

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Hi,

zum Senden eines Strings alle 2s über UART brauchste keinen sceduler, 
sondern nur nen Timer Interrupt.

Ansonsten:
Für den Einstieg hab ich mal nen supereinfachen kooperativen 
Funktions-Sceduler geschrieben, also Funktionen werden nach Prio 
aufgerufen und müssen sich selbst wieder beenden. War interessant, wie 
sehr das dingen schon die Arbeit auf einem uC vereinfachte und 
entzerrte.

Mittlerweile arbeite ich mit Keil RTX, und will ein RTOS nicht mehr 
missen auf nem uC :-)


VG,
/th.

von paul (Gast)


Lesenswert?

Hallo,

a) Ich programmiere in C den Mikrocontroller AT90CAN128

b) Zur Zeit Sende ich ohne Problem String über UART. Ich habe auch ein 
Timer konfiguriert aber für die Überwachung von CAN-Kabel.

c) Mein Programm hat als Aufgabe: String über UART zum empfangen und 
weiter über CAN-Bus zu senden.

d)Jetzt möchte ich ein bestimmtes String jedes 2s über UART senden und 
gleichzeitig(parallel) mein aktuelles Programm laufen lassen.

e) Ich vermute dieses Parallismus ist der Scheduler oder?

Danke

von Karl H. (kbuchegg)


Lesenswert?


von Stefan B. (stefan) Benutzerseite


Lesenswert?

Man kann das mit einem Scheduler machen, muss es aber nicht.

Wenn du bereits einen Timer mit feinerer Auflösung als 2s laufen hast, 
könntest du einen UART-Puffer für den 2s-String anlegen und aus dem alle 
2s ausgeben. Idealerweise nicht den kompletten String auf einmal, 
sondern in einzelne Zeichen oder Zeichenpakete gestückelt und per per 
UART-TX-Interrupt, so dass dein Hauptprogramm öfters zum Zug kommt.

Lies mal auf Wikipedia den Artikel über Scheduler. Da sind ein paar 
Fragen zu Realtime und Prioritäten drin, die du dir bei deinem System 
auch stellen musst.

von Falk B. (falk)


Lesenswert?

Siehe Multitasking

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.