-
        

Ergebnis 1 bis 2 von 2

Thema: Spezifische Frage zu Bascom-Programm auf ATMega8

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.01.2006
    Ort
    Homberg (Efze)/Nordhessen
    Alter
    32
    Beiträge
    207

    Spezifische Frage zu Bascom-Programm auf ATMega8

    Anzeige

    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

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    setz nen flag, dasis wohl das einfachste...

    also:

    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
    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
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •