seltsames Problem ATMEGA16 mit Encoderschaltkreis

Gast #483706
Lesenswert?
• ▲
▼
Hallo,

habe zur Auswertung einiger Drehgeber einen ATMEGA16 und einen HCTL2032 
eingesetzt.
http://www.avagotech.com/assets/downloadDocument.do?id=1780
Die Daten werden vom Port C des MEGA16 gelesen.
Allerdings bekomme ich nur wirre Daten vom HCTL. Deshalb mit einen 
Oszillografen mal die Signale überprüft und festgestellt, das die 
Encodersignale unsauber sind. Ursache waren die fehlende 
Abschlußwiderstände der RS422 Verbindung. (Drehgeber <> HCTL)
Allerdings hat das nichts gebracht, die Signale sind jetzt sauber aber 
gezäht wird trotzden nicht richtig.

Jetzt habe ich den Drehgeber mal ganz langsam gedreht und festgestellt, 
das ein Systen in den gelieferten Zählerständen ist:

0;1;2;3;  64;65;66;67;  128;129;130;131;  192;193;194;195

Danach geht es wieder von vorn los.
Der Abstand ist immer 61. Dachte die Portleitungen 2 und 6 sind 
vertauscht, das würde den Sprung von 3 auf 64 erklären den Rest aber 
nicht so richtig.
Die Leitungen habe ich gründlich überprüft, es ist weder eine 
Vertauschung, noch ein Schluß und auch keine Unterbrechung drin.
Die Datenbläter sind direkt von den Herstellern.

Weiß jetzt nicht mehr weiter, hat irgen jemand noch eine Idee?

Gruß Reinhard
#483745
Lesenswert?
• ▲
▼
0;1;2;3;  64;65;66;67;  128;129;130;131;  192;193;194;195

mal binär aufschreiben

  0      0000 0000
  1      0000 0001
  2      0000 0010
  3      0000 0011
 64      0100 0000
 65      0100 0001
 66      0100 0010
 67      0100 0011
128      1000 0000
129      1000 0001
130      1000 0010
131      1000 0011
192      1100 0000
193      1100 0001
194      1100 0010
195      1100 0011

Entweder Bits 2 und 6  UND
              3 und 7    vertauscht

oder du kriegst in den obersten 2 Bits eine Quadranteninformation.
Gast #483823
Lesenswert?
• ▲
▼
Hallo Karl Heinz,

besten Dank für deine Mühe.
Wie gesagt, vertauscht ist nichts, aber es scheint ein Problem mit dem 
Mega16 zu geben.
Gibt es beim Port C irgendwelche Besonderheiten ?
Habe es in Bascom so als Eingang programmiert:
Config Portc = Input

Zumindest die Pins 2,3 und 5 lesen nicht was sie sollten. Es wird zB. 
eine 3 ausgegeben obwohl sie auf "1" stehen.
Reagieren tun sie aber, wenn ich den Encoder durchdrehe.



Gruß Reinhard

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.