PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spezifische Frage zu Bascom-Programm auf ATMega8



Powell
23.05.2006, 17:06
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

x-ryder
23.05.2006, 17:47
setz nen flag, dasis wohl das einfachste...

also:


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

erklärung/beispiel:
- 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