Hallo,
hallo, ich muss das ganze leider in C realisieren...
ich habe eine werteliste welche abgearbeitet werden muss... die ganze
liste hat einen fest vorgegebenen timer...
also z.B. port1: [ 0, 1, 1, 0, 1 ] mit 100ms dann muss ich alle 100ms
parameter für parameter abarbeiten...
allerdings soll nebenbei das "normale" program weiterarbeiten. Ebenso
kann es sein, dass nebenbei mehrere parameter laufen also port2: [ 0, 1
] 10000ms, hier ist die parametergruppe post1 evtl noch nicht fertig
aber es startet parametergruppe 2
da ich verschiedene "unterprogramme" habe die parallel laufen sollen
habe ich mir das in einen vorherigen foreneintrag abgeguckt...
ich habe also verschiedene counter welche zählen und sobald einer auf
seinen wert ist, wird der befehl ausgefürt und der wert zurückgesetzt:
1 | int cnt[4];
|
2 | int prm[4] = { 20, 5, 3 16 };
|
3 |
|
4 | while(1) {
|
5 | for( int i = 0; i < 4; i++ ) {
|
6 | cnt[i]++;
|
7 | }
|
8 |
|
9 | if( cnt[0] == prm[0] ) {
|
10 | cnt[0] = 0;
|
11 | //aufgabe 1 ausführen
|
12 | }
|
13 |
|
14 | //selbiges gilt auch für aufgabe 2...
|
15 |
|
16 |
|
17 |
|
18 | int tSleep = speed * 5 * 1000; // ca 5ms
|
19 | usleep( tSleep );
|
20 | }
|
21 |
|
22 | return 0;
|
ich weiß, dass ich hier keine genauen zeiten hinbekomme... das
interessiert mich aber auch garnicht... ich habe für die Hardware ein
paar zeiten einzuhalten (lesen von adc schreiben von gpio) und diese
werde ich "großzügig" einhalten... ob da jetzt 50ms mehr oder weniger
sind ist mir egal
ich weiß jetzt noch nicht exakt wie (da bin ich noch bei der findung)
aber irgendwie werd ich jetzt von außen befehle Reinbringen (vermutlich
habe ich eine SQLite Datenbank) und da wird dann eine schleife oder [das
bekomm ich noch nicht so hin], die einzelnen zustände eingebracht.
=> es ist allerdings so, dass von außen der befehl zum startzeitpunkt,
komplett vorliegt, aber er dann über die zeit abgearbeitet werden soll.
hat jemand einen tipp für mich?
in Javascript habe ich da einfach mit einer schleife einen Timeout
gefüttert <- leider ist die js-lösung nicht stabil genug um ZUVERLÄSSIG
alle Schaltzustände zu erreichen und da schwankt die zeit ZU SEHR...
bei C habe ich mehr als genug Leistungsreservern
kurzum... mir liegt ein array vor welches abgearbeitet werden soll...
ich habe sogar bereits eine "forschleife" welche alle schaltzustände
durchläuft... allerdings durchläuft die forschleife innerhalb von ms
(oder noch schneller) und ich brauche aber die vordefinierte zeit...
einen SLEEP kann ich nicht einbauen, weil sonst das programm steht :(