ein Timer würde sicher genügen.
Den lässt du einfach im doppeltem Sound-Takt laufen.
Im Hauptprogramm fragst du deine Eingänge ab und setzt die Ausgänge und, falls erforderlich, setzt du eine Variable mit der Anzahl Sound-Takte entsprechend der maximalen Dauer.
Im Interrupt fragst du diese Variable ab und wenn sie größer Null ist, dann toggelst du den Sound-Ausgang und zählst eins runter.
Gleichzeitig checkst du mit einer 2. Variable, ob grad deine 2..3sec vorbei sind und handelst entsprechend.
Ein Tiny13 reicht dann nach meinem Gefühl, der hat ja 5 I/Os.
Gruß, Michael
Lesezeichen