Hallo Gemeinde

achim S.

Mitglied
16. Jan. 2010
704
13
18
Berlin Biesdorf
Sprachen
  1. ANSI C
Vielleicht könnt ihr mir helfen. Es geht dabei um einen Drehgeber. Habe ihn bereits erfolgreich an einem Atm 128 angeschloosen und ausgewertet. Betreibe dazu auch noch ein Display mit Menue dazu.
Möchte ihn jetzt über den I2C Bus betreiben. Habe dazu einen Attiny 44 genommen und den drehgeber daran angeschlossen. Selbe Aufbau wie beim Atm 128. Zur übertragung möchte USI verwenden.
Wie kann ich es am besten auswerten im Atm 128 und im Attiny 44 und übertragen.
Hat jemand eine Idee dazu?

achim
 
Hallo Achim,

ich hoffe, ich habe dich richtig verstanden ...


Tiny44 wertet Drehencoder aus und ist I2C Slave
Mega128 ist I2C Master.

Zum Beispiel ...

I2C Datenübertragung:

ADRESSE+R/W STATUS RECHTS_H RECHTS_L LINKS_H LINKS_L REL_H REL_L

Master pollt.
Ist Status ungleich 0 hat sich etwas geändert, also weitere Daten auslesen.

Variable RECHTS_H/L Anzahl der Pulse rechts, seit dem letzten Auslesen
Variable LINKS_H/L Anzahl der Pulse links, seit dem letzten Auslesen
Variable REL_H/L Relative Position seit dem letzten Auslesen

Werden alle Daten ausgelesen oder bei Reset, initialisiert der Slave alles mit 0.
Ggf. reicht auch eine Variable (relative Position) zu übertragen, je nachdem was für die Anwendung sinnvoll ist.
Optionaler Drucktaster im Decoder könnte man im Statusbyte übertragen.

Wenn nicht gepollt werden soll, könnte man den Status (Ereignis) auch über eine zusätzliche Signal-Leitung übertragen.
 
Hallo Dirk
das stimmt so ganz genau. Da es leider keinen Encoder mit direkter I2C Anbindung gibt, versuche ich es mal so. Da ich einges Auslagere auf andere Prozessoren und Verbinde über USI passt das gut. Daher auch meine Fragen der letzten Zeit. Habe bereits mehrere Teile mit I2C und USI verbunden.
achim
 
Also ich hatte mir mal überlegt, so'n Ding an einen Tiny10 anzubinden (also die beiden Phasen und den Taster an drei der Beine). Da bliebe allerdings nur ein Pin zum Überttragen - meine Idee war also, 'n Soft-UART zu verwenden.
Zwei Bits für Schritte in beide Richtungen, ein Bit für kurze - ein Bit für lange Tasterbetätigungen.
HW-UART will mindestens fünf Datenbits, also wäre noch eins frei (zB für "ButtonDown").
Protokollarisch weniger hoch integriert, dafür verschwindet der Tiny10 nahezu am Drehgeber.
 
Hallo
hatte auch erst überlegt einen Kleinen IC zu nehmen. Beim Drehgeber habe ich zusätzlich 3 LEDs (RGB) integriert und einen Schalter angeschlossen. Beim ATm 128 verwende ich das Teil in einem Menue mit Einknopfbedienung.
Eigentlich wollte ich den Code von Peter übernehmen. Der hat sich als sehr gut erwiesen.
Dirk könntest du ein bischen mehr (Code) dazu preisgeben?
achim
 
Sorry noch was vergessen. der Ati 44 könnte sogar zu klein sein. Wenn ich noch die Adressen per Hardware einstellen möchte wird es eng
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)