ANSI C: Hilfe zu einfachem SPS Programm

cypher

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag.

Ich möchte gerne zyklisch einen Eingangswert A mit einem festgelegten Wert B vergleichen und bei überschreiten des Wertes einen Ausgang C öffnen (LED soll leuchten).
Dieser Vergleich soll alle 60 Sekunden durchgeführt werden und die LED 5 Sekunden leuchten (bei Überschreiten des Wertes).
Leider kenne ich mich kaum mit der Programmiersprache ANSI C aus.
Könnte mir hier jemand einen entsprechenden Beispielcode (möglichst einfach und simpel) mit dieser Funktion posten und eventuell kurz erklären.

Hoffe jemand kann mir dabei behilflich sein.

LG
 
... zyklisch einen Eingangswert A mit einem festgelegten Wert B vergleichen und
... bei überschreiten des Wertes einen Ausgang C öffnen (LED soll leuchten).
... Dieser Vergleich soll alle 60 Sekunden durchgeführt werden und
... die LED 5 Sekunden leuchten (bei Überschreiten des Wertes).

Könnte mir hier jemand einen entsprechenden Beispielcode (möglichst einfach und simpel) mit dieser Funktion posten und eventuell kurz erklären.

while(1)
{
float differenz = A - B;
if(differenz > 0) setC();
sleep(60);
};

void *t(int *arg) // thread function
{
output(C,1);
sleep(5);
output(C,1);
return arg;
}

void setC()
{
createThread(t,NULL)
}

Achtung: man braucht eine Bibliothek für die threads und das I/O z.B. die rllib aus unserem pvbrowser,
 
//Ohne Threads:

int led=0;
int sec=0;
while(1) // forever
{
if(sec == 0 && (A-B) > 0)
{
led = 1;
output(C,led); // LED on
}
else if(led == 1)
{
led = 0;
output(C,led); // LED off
}
sleep(5);
sec += 5;
if(sec >= 60) sec = 0;
};
 
Zurück
Oben