Rone
09.06.2009, 20:39
Hallo zusammen!
Vorweg: Bin Hobbyist und in meiner Freizeit beschfätige ich mich ein wennig
mit µC und Bascom.
Vorhaben:Habe mir einen Servotester mit 3 Tasten und Bascom gebastelt.
Funktioniert sehr gut. Nun möchte ich die drei Tasten durch einen Drehgeber
ersetzen. Der Bascom interne Encoder Befehl ist so nicht das Wahre, obendrein möchte ich auch immer ein wenig mehr dazulernen.
Habe imµC-net Forum einen Code gefunden der im 1ms Timerinterrupt
läuft, den ich nach Bascom transportieren möchte.
Link:http://www.mikrocontroller.net/articles/Drehgeber#Differenzierung_von_Drehgebern
Da man dort als Anfänger oft blöd angemacht wird stelle ich meine Fragen
lieber hier.
Also 1.) #define PHASE_A (PINA & 1<<PA1)
PinA wird eingelesen, das Bit1 wird um 1 Stelle nach links geshifted
und dann beides Bitweise ver_und_et. Soweit meine Eigendefinition.
Wenn ich die Pegelzustände durcharbeite kommt bei mir immer
Null raus!
2.) if( PHASE_A )
new = 3;
Wenn Bedingung ist true dann new =3. Aber dazu kommst bei
mir ja nicht da PHASE_A immer 0 ist.
Das kann ja so nicht stimmen!
Kann mir jemand der C-Cracks hier bitte helfen?
MfG
Rone
Vorweg: Bin Hobbyist und in meiner Freizeit beschfätige ich mich ein wennig
mit µC und Bascom.
Vorhaben:Habe mir einen Servotester mit 3 Tasten und Bascom gebastelt.
Funktioniert sehr gut. Nun möchte ich die drei Tasten durch einen Drehgeber
ersetzen. Der Bascom interne Encoder Befehl ist so nicht das Wahre, obendrein möchte ich auch immer ein wenig mehr dazulernen.
Habe imµC-net Forum einen Code gefunden der im 1ms Timerinterrupt
läuft, den ich nach Bascom transportieren möchte.
Link:http://www.mikrocontroller.net/articles/Drehgeber#Differenzierung_von_Drehgebern
Da man dort als Anfänger oft blöd angemacht wird stelle ich meine Fragen
lieber hier.
Also 1.) #define PHASE_A (PINA & 1<<PA1)
PinA wird eingelesen, das Bit1 wird um 1 Stelle nach links geshifted
und dann beides Bitweise ver_und_et. Soweit meine Eigendefinition.
Wenn ich die Pegelzustände durcharbeite kommt bei mir immer
Null raus!
2.) if( PHASE_A )
new = 3;
Wenn Bedingung ist true dann new =3. Aber dazu kommst bei
mir ja nicht da PHASE_A immer 0 ist.
Das kann ja so nicht stimmen!
Kann mir jemand der C-Cracks hier bitte helfen?
MfG
Rone