Inkremental-Geber --> Up / Down

Gast #92434
Lesenswert?
• ▲
▼
Hallo.

Ich möchte nen Inkrementaldrehimpulsgeber an 'nen AVR hängen (An die 2
Interrupts des AT90S8535). Ich habe jedoch schon als Hilfe nen
"Wandler" hier der auch funktioniert! (siehe Anhang). Wenn er
aufwärts zählt, wird "Clock" 5V aktiv. So sollte es auch bis jetzt
sein. Wenn ich ihn aber in die andere Richtung drehe, zählt er ab: Es
sind "Clock" und "UP/\Down" aktiv. Kann man irgendwie das
"Clock"-Signal abschalten, wenn "UP/\Down" aktiv sind? Ich dacht
mir schon mit Relais aber die ziehen zu langsam an. Also dachte ich an
Transistoren. Leider ist mein Wissen über Transistoren beschränkt,
sodass ich nicht genau weiß, wie ich die Transistoren anschließen soll.
Bzw. Geht das überhaupt mit Transistoren?

Vielen Dank


McMurkser
Angehängte Dateien:
Gast #92436
Lesenswert?
• ▲
▼
Hallo,

ich weiß zwar nicht genau, wie Dein Inkrementalgeber funktioniert.
Die Clock-Line sagt Dir doch IMHO das sich irgendwas an dem Geber
verändert hat. Du brauchst also nur die Clockline an den Inerrupt
anzuschließen und in der Interruptroutine ein Portpin abzufragen, ob er
gesetzt ist (downcount) oder nicht (upcount).

global {
  char count;
}

int main (void) {

...

DDRPORTCOUNT = 1;
PORTCOUNT = 1;

...

}

INTERRUPT (SIG_INTERRUPT0) {

   if (PORTCOUNT == 1) ++count;
   if (PORTCOUNT == 0) --count;

}
Gast #92438
Lesenswert?
• ▲
▼
bleibt noch anzumerken, dass es natürlich unnötiger Aufwand ist, mit
externer Hardware aus den Spursignalen erst mal Takt- und
Richtungssignal zu erzeugen. Das kann der Prozessor nebenbei machen,
aber wenn du die Beispiele mal durchsiehst, wirst du das ja merken:-)
Gast #92443
Lesenswert?
• ▲
▼
Jo Gerhard danke!
Ich habs grad gefunden! :) freu

Encoder1:
  Toggle Mcucr.isc10
  If Enc_a <> Enc_b Then
    Decr Weg
  Else
    Incr Weg
  End If
 'Print Weg
  Return

  Encoder0:
  Toggle Mcucr.isc00
  If Enc_a = Enc_b Then
    Decr Weg
  Else
    Incr Weg
  End If
' Print Weg
  Return

Genau das, nach dem ich gesucht habe!

Danke

McMurkser

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.