Hallo
Ich bin gerade dabei ein Programm in Bascom für einen ATMega8 zu schreiben. Es werden hierbei nur zwei Taster abgefragt und bei betätigung eines Tasters über das zum Taster gehörige Sub ein entsprechender Ausgang für 75ms auf high geschaltet.
Nun möchte ich aber das Programm insofern ändern, als dass die durchzuschaltende Zeit abhängig vom vorhergehenden Ereignis ist:
Wenn Taster 1 gedrückt wurde, und anschließend Taster 2 gedrückt wird, soll t=100ms sein. Wenn Taster 1 gedrückt wurde und anschließend nochmal Taster 1 gedrückt wird, soll t=75ms sein.
Von der Logik eigentlich eine einfache Sache, aber leider bin ich in Bascom noch nicht genug bewandert um das ganze in die Tat umzusetzen. Über ein hilfreichendes Listing würde ich mich also sehr freuen
Danke und Gruß
Paul
setz nen flag, dasis wohl das einfachste...
also:
erklärung/beispiel:Code:dim b1p as bit 'button 1 pressed dim time as byte '..... if pina.0 = 1 then if b1p = 1 then time = 75 b1p = 0 end if else b1p = 1 end if if pina.1 = 1 then if b1p = 1 then time = 100 b1p = 0 end if end if '...... waitms time
- der erste taster wurde einmal gedrückt
- da b1p noch nie auf 1 gesetzt wurde, geschieht dies nun
- wenn jetzt der erste taster ein weiteres mal gedrückt wird, dann setzte die zeit auf 75, und b1p wieder auf 0, vorgang abgeschlossen
- wenn jetzt der zweite taster gedrückt wird, dann setzte die zeit auf 100, und b1p wieder auf 0, vorgang abgeschlossen
das wars eigentlich denke ich ^^
Martin
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
Lesezeichen