Hallo oderlachs,
Müßte bei If PINB.3 nicht ..." = 1 then" mit dazu.
Der Eingang sollte entprellt (in Software oder Hardware?) werden um Fehlalarme zu vermeiden.
Outputs sollten z.B. als PORTB.1 geschrieben sein. Also alle PINB.0-2 in PORTB ändern, besonders wichtig wenn man sie setzen möchte. B.3 ist okay.
Wenn die Schleife durch ist, landest Du in der do - loop Schleife - diese ist dann eine Sackgasse.
Ansonsten landest Du direkt nach dem flag = false setzen doch direkt in der do - loop Schleife - und gibst flag an PinB.2 (-welcher zu PORTb.2 werden sollte) weiter. Und dann bleibst Du auch in der Sackgasse - der Blitzer blitzt also nicht, weil flag = false (=0) ist.
Das step 1 benötigt man nicht, da automatisch mit +1 addiert wird.
Das cend kann man vorher berechnen lassen, da es Konstanten sind, die ggf manuel geändert wedren. Dieses cend kann also vor die Hauptschleife, die Du noch richtig einbauen mußt.
Nimm das do unten weg und setze es eine Zeile vor die If anweisung nach dem flag = false Befehl.
Das alles sollte zumindest eine Verbesserung bringen, wenn ich das richtig gesehen habe
Viele Grüße
Lesezeichen