-         

Ergebnis 1 bis 3 von 3

Thema: Drehgeber auswertung - Fehlerhaft?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    05.08.2004
    Beiträge
    93

    Drehgeber auswertung - Fehlerhaft?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hey!

    ich habe an meinen atmega 8 einen drehgeber angeschlossen. dazu folgende auswertung geschrieben:

    Code:
      
                 if (KeyB!=buffer){
                 if(KeyA == KeyB)
                              counter++;
                 else
                              counter--;
                 buffer = KeyB;
                 WriteVal(counter);
                 
       }
    Dieser Codeteil wird als interrupt bei jeder änderung von KeyB ausgeführt.
    (KeyA und KeyB sind die beiden signale).

    Nun is es nun aber so, dass einfach manchmal zyklen ausgelassen werden bzw falsch ausgewertet werden (dh in die falsche richtung zählen).

    im grunde funktioniert das prog sonst.

    ps: ich denke nicht, das es fehler sind, die durch kontaktprellen entstehen oder so,....


    vielleicht könnt ihr mir helfen
    mfg gamecounter

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Wo/wie wird denn counter ausgewertet?
    Wird von KeyA und KeyB ein Schnappschuss gemacht, so daß sie gleichzeitig bestimmt werden?
    Disclaimer: none. Sue me.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.08.2004
    Ort
    Zwolle
    Alter
    61
    Beiträge
    531
    Ich vermute dass KeyA und/oder KeyB auch ausserhalb der Interrupt Function benutzt werden.

    Wenn so dann mussen die wie 'volatile' deklariert sein.

    z.B.

    volatile char KeyA;

    Gruss

    Henk

Berechtigungen

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