Forum: Mikrocontroller und Digitale Elektronik AT90USB1287 und Drehencoder Phänomen


von burnout2000 (Gast)


Lesenswert?

Guten Morgen.

Ich habe ein verwirrendes Phänomen an meinem AVR beobachtet.

An PIN 25 -27 habe ich einen Drehencoder angeschlossen.
Pin25  Encoderpin A
Pin26  Encoderpin B
Pin27  Encoderpin D (Taster)

Encoderpin A und B liegen mit 47k an 5V

An pin 27 am AVR habe ich den Interrupt aktiviert.
Pin 25 und 26 sind normal als eingang geschaltet.

Jetzt zum Phänomen:
Warum resettet sich mein AVR sofort wenn ich den Drehencoder nach links 
drehe und erst nach ca. 5 Rastungen wenn ich nach rechts drehe??
Ich habe noch gar keinen Code für die Pins geschrieben. Sie werden 
nirgends abgefragt!!!
Der Taster an Pin 27 funktioniert super!
Wenn ich Pin 25 und 26 auch als Interrupt schalte, besteht das selbse 
Problem.

Vielen Dank im Vorraus für Eure Vorschläge!

Gruß

von burnout2000 (Gast)


Lesenswert?

hab grad festegestellt dass beim drehen des Encoders auch noch INT2 
ausgelöst wird.
Hab mal alles durchgemessen, kein Kurzschluss und richtige 
Verdrahtung...

von burnout2000 (Gast)


Lesenswert?

ich nochmal :-)

hab das ganze jetzt anderst versucht zu lösen:
Encoder Pins A und B auf AVR Pin 25 und 26 als normaler Eingang 
geschaltet.
Mein Timer Overflow Interrupt schaut sich zyklisch die Pins an und 
bestimmt dann die Drehrichtung.
Soweit funktioniert das auch wunderprächtig.
Aber, warum resettet sich mein µC sporadisch wenn ich den Encoder 
bewege???
Das verstehe ich nicht so ganz. Wenn ich den Encoder ablöte und durch 
normale Taster ersetze besteht das gleich Problem.

von Sesk K. (zeborok)


Lesenswert?

Wie "ging" das eigentlich letzlich aus?

von Heinz (Gast)


Lesenswert?

weil ein Interrupt ausgelöst wird und die Service-Routine einen jmp 0 
macht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.