Parallel zu delay.h arbeiten - ich steh auf dem Schlauch

Gast #2265906
Lesenswert?

Moin,

also irgendwie steh ich gerade auf dem Schlauch.

Annahme:
Ich hab eine Schaltung mit  LCD, Taster und blinkender LED.

Meine LED lass ich in main.c mittels delays.h blinken.

Jetzt hab ich eine Unterfunktion (Entpreller Taster und LCD-Ansteuerung)

Der Taster kommt sagen wir mal ohne Interrupt aus, sondern wird im 
Programm in main abgefragt.

Sagen wir mal meine LED blinkt alle 1 sek. und meine Unterfunktion 
braucht 5 sek. bis sie fertig ist.

sieht das dann nicht so aus?

Abstand 1 Sekunde:
LED 1
LED 0
LED 1
LED 0
Taster 1
5 sek.
LED 1
LED 0

Ich würde mir doch dann das Blinken kaputtmachen oder?

Gruß
der auf dem Schlauch stehende
Moderator (Firma: Titel) Persönliche Seite #2265931
Lesenswert?

AufdemSchlauch schrieb:
> Meine LED lass ich in main.c mittels delays.h blinken.
Das ist der Fehler.
Mit delay_ms() braucht der Prozessor seine ganze Rechenleistung dafür, 
Warteschleifen zu zählen...

Sieh dir andere funktionierende Programme an. Dort wirst du eine 
(Haupt-)Schleife finden, die der Prozessor dauernd abarbeitet. Und von 
"aussen" werden nur Flags gesetzt, die zeigen, dass etwas getan werden 
muß. Ein solches Flag wäre bei dir z.B. das Sekunden-Flag, das in einer 
kurzen und knackigen Timerinterruptroutine berechnet wird, und anzeigt, 
dass wieder mal eine Sekunde vorbei ist.
Gast #2265961
Lesenswert?

so in der richtung hab ich mir das ja auch gedacht, nur ist es doch 
irgendwie doof, dass man gleich mal am Anfang auf die falsche Fährte 
geführt wird, wenn man seine blinkende LED beim ersten Projekt in main 
schreibt.
#2266283
Lesenswert?

AufdemSchlauch schrieb:
> so in der richtung hab ich mir das ja auch gedacht, nur ist es doch
> irgendwie doof, dass man gleich mal am Anfang auf die falsche Fährte
> geführt wird, wenn man seine blinkende LED beim ersten Projekt in main
> schreibt.

Das Problem ist, dass jeder Anfänger irgendwo anfangen muss. Man kann 
einem Anfänger nicht gleich alles bis zum Timer und Interrupts 
eintrichtern, ehe er sein erstes Programm schreiben kann.

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