Hallo Johannes,
in den if Abfragen machst Du ja eigentlich immer das Gleiche, außer der unterschiedlichen Wartezeit zwischen Pin high und low schalten.
Das könnte man zB so zusammenfassen:
Code:
Dim Portstatus As Byte
Do
Portstatus = pinb And &B00001111 'Portb komplett auslesen und nicht intressierende Pins auf 0 setzen
Waitms 20
Portb.4 = 1
Select Case Portstatus
Case 0 : Waitms 500
Case 1 : Waitms 1000
Case 2 : Waitms 2000
Case 3 : Waitms 4000
Case 3 : Wait 8
.
.
Case 15 : Wait 210
End Select
Portb.4 = 0
Waitms 30
Loop
Das sollte in den ATtiny13 passen.
Platz für einen Quarz bleibt da aber wohl nicht mehr bei 4 Input und einem Output Pin?
Gruß
Searcher
Lesezeichen