Forum: Mikrocontroller und Digitale Elektronik C-Programm Flüssigkeitsregelung. Timer Problem


von Kurt M. (spock53)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich bin gerade dabei eine Schaltung zur Flüssigkeitsabsaugung zu 
entwerfen. Zwei Sensoren detektieren (durch aktives Polling) den 
Flüssigkeitsstand . Die Pumpe soll einschalten, sobald der obere Sensor 
aktiv ist(Sensoren sind nullaktiv) und ausschalten wenn der 
Flüssigkeitspegel den unteren Sensor erreicht hat.
Die Grundfunktion funktioniert schon. Nun möchte ich aber, dass eine 
Warn-LED blinkt, sobald der obere Sensor aktiv ist und der untere Sensor 
nicht aktiv ist (das weist auf einen Fehlerfall der Sensoren hin). Das 
Blinken möchte ich mit einem Timer im CTC mode realisieren. Wenn ich den 
Fehlerfall auf meinem Board simuliere, geht die Warn-LED zwar an, blinkt 
aber nicht. Wenn ich die verwendete Timterfuntion in einem extra 
Programm starte, bringe ich die LED zum blinken. Im Anhang befindet sich 
der Programmiercode. Ich würde mich sehr freuen, wenn mir jemand mit 
meinem Problem weiterhelfen könnte.
Gruß Spock53


ich habe gerade gesehen, dass die Variable "fehler" keine datentyp hat 
im Quelltext hat. Im programmers notepad wird der datentyp angezeigt . 
hier steht  "int8_t" davor.

von Stefan E. (sternst)


Lesenswert?

1
if((millisekunden>120) & (PINB & (1<<PINB2)) )
2
else if ((millisekunden >33) & (!(PINB & (1<<PINB2))))
3
if((PINC & ((1<<PINC0) | (1<<PINC1)))==0)
4
else if( (PINC & ( (1<<PINC0)))  & !(PINC & (1<<PINC1)))
Alle diese Zeilen sind falsch.
Bitte mal informieren über den Unterschied zwischen den bitweisen 
Operatoren (z.B. &) und den logischen Operatoren (z.B. &&).

von Kurt M. (spock53)


Lesenswert?

da habe ich doch vor lauter Bäumen den Wald nicht gesehen  ;)
Jetzt gehts. Vielen dank für deine schnelle Hilfe.

Gruß Spock53

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.