Crontab Library für avr

OP #3330826
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.
Gast #3330852
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!
OP #3330893
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.
Gast #3331453
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren