Forum: Projekte & Code Crontab Library für avr


von Peter S. (petershaw)


Lesenswert?

Hallo,

jetzt will ich doch auch mal etwas zurückgeben!

In mehreren Projekten verwende ich eine Art Cron als einfache Umsetzung 
für wiederkehrende Tätigkeiten, oder als Timeout.
Da ich nun unterschiedlich und mehrere Versionen habe, habe ich 
beschlossen da mal aufzuräumen und eine eigene lib zu machen, die ich 
dann nur includen muss.

Ich hab heute morgen ein wenig Dokumentiert und makefiles gerade 
gezogen. Aber hey, ich bin garantiert nicht der beste Coder und würde 
mich über Feedback freuen.

Projekt liegt hier: https://github.com/petershaw/AVR-Crontab

Ich danke für die Aufmerksamkeit.

von Bastler (Gast)


Lesenswert?

Hallo Peter,
du ahnst aber, daß die cron-Callbacks mit gesperrten INT's laufen.
Das ist gut, wenn man mit volatile auf dem Kriegsfuß steht, aber sorgt 
nicht dafür, daß andere INT's allzuschnell reagieren.
Oder man stellt klar, daß die Callback wie ein INT- Händler auszuführen 
sind:kurz und knapp!

von Peter S. (petershaw)


Lesenswert?

Hi Bastler,

ja das ist mir bewusst. Bisher noch kein Problem gewesen, aber das 
könnte man mal für Version 2 Andenken.
Problem dabei ist nur das man an den Mainloop kommen muss, oder dort dem 
Entwickler zumindest befehlen muss, das er eine Funktion im cron aufruft 
und alle jobs dort erstmal in einer Queue oder Buffer liegen.
Zudem müsste man dann beide Versionen anbieten und zeitgleich eine Prio 
einführen, da der Ruf aus dem Loop dann wieder ungenauer währe.


Mal eine andere Frage dazu. Ich erzeuge nun zwei libs, eine für avr und 
die andere für x86_64 da die Cunit tests bei mit auch auf die cron.h 
zugreifen müssen, aber auf dem Mac laufen.
Die x86_64 lib bekomme ich super eingebunden mit " -force_load 
"../lib/libavrcron_x68_64.a" Aber der avr-gcc, bzw avr-ar sträubt sich 
noch massiv:

vr-gcc -I ./lib -g -mmcu=atmega328p -Os -lavrcron -DF_CPU=20000000UL 
-fpack-struct -fshort-enums -funsigned-bitfields -funsigned-char -Wall 
-Wstrict-prototypes -Wa,-ahlms=./build/src/device/deviceconfig.lst -c 
src/device/deviceconfig.c -o ./build/src/device/deviceconfig.o
src/device/deviceconfig.c:24:18: fatal error: cron.h: No such file or 
directory
compilation terminated.

Weißt du wie man das macht?
Danke.

von Peter S. (petershaw)


Lesenswert?

Ah vergiss meine Frage. Ich muss die Header Datei natürlich auch zur 
Verfügung stellen.
Es war spät gestern... :-)

von luke (Gast)


Lesenswert?

sieht sehr interessant aus! aber was ist es genau für leute die nicht 
wissen was crontab etc . heißt.. is das eine art scheduler? eine 
funktion zu einer gewissen zeit starten? wie ein RTOS nur ohne soviel 
overhead?

mfg

von Peter (Gast)


Lesenswert?

Das trifft es ziemlich genau.
Bin gerade unterwegs, wenn du fragen hast nur her damit! Unterhalte mich 
später gern darüber. :-)

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.