Hallo Finn,
Code:
if ( [COLOR=darkred][B](PINB | (1<<PB0))[/B][/COLOR])
{
entprellcounter++;
} else {
entprellcounter = 0;
}
das geht nicht (rot). Die Bedingung ist immer wahr! Richtig wäre hier zum Beispiel
if (
(PINB & (1<<PB0)) == 0)
Weiter habe ich mir deinen Code jetzt nicht ansehen können.
Dirk
Die Bedingung sollte nicht immer war sein.
Kurz zur Schaltung:
Relais Platine -> Per Funk -> Relais als Stromstoßrelais schalten.
Also muss ich ja, wenn ich jeden Tastendruck auswerten möchte, erkennen, wenn sich das Signal ändert.
Einmal halt: 0 => 1 und 1 => 0
if (
(PINB & (1<<PB0)) == 0)
Das == 0 kann ich doch eigentlich weglassen oder?
Ich frage doch mit dem "&" schon ab, ob das Bit an PINB0 gelöscht ist oder nicht?
Daher bin ich auf den Gedanken gekommen, dass "if (
(PINB | (1<<PB0))) " heißen müsste, dass wenn Bit PINB0 gesetzt ist, mache...
michaelkorb schrieb:
Mit den Zeiten mußt Du experimentieren. Kommt darauf an, wie lange Dein Relaisimpuls ist.
Ich habe wie schon erwähnt ein Stromstoßrelais, also ist der "Impuls" solange, wie das Programm "an" sein soll.
Die nächste Änderung kommt erst, wenn ein neues Programm ausgewählt wird.