mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Drehgeber Auswerten an Attiny13 und Atmega8 bascom


Autor: Neubi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi! Ich komme hier im Text nicht weiter. Mag einen Drehgeber auswerten 
und habe im www den obigen Textschnipsel gefunden. Jedoch geht beim 
compilieren schon ein Fehler los, die Baudrate wäre nicht möglich- hab 
ich also das Schicken des Werts von "D" gecancelt. Nun würde ich gern 
wissen, warum nicht mein Atmega 8 diese Aufgabe kann?

Stelle ich auf den Mega8 um, so stört den Compiler u.A. diese Stelle:

On Pcint0 Int_isr

bei der Sache mit angenommenem tiny13 stellt das kein Problem dar, beim 
Atmega8 gehts nicht?!

Weiterhin akzepiert man beim tiny13 diese Stelle, jedoch beim Atmega8 
nicht:

Pcmsk = 8
Gimsk = 32

Da ich in der Hilfe hierzu nichts finden kann wende ich mich hier an 
einen erfahrenen Experten :-)
Da ich keinen Tiny13 habe und diesen auch nicht nutzen mag suche ich 
nach einer Lösung, den Drehgeber auszuwerten an Atmega8

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Stelle ich auf den Mega8 um, so stört den Compiler u.A. diese Stelle:

> On Pcint0 Int_isr

Ja logisch, Du willst damit ein Feature verwenden, das Du gar nicht 
gekauft hast... ;-)

Der Mega8 hat kein PinChange-Interrupt, was Du durch einen Blick in das 
Datenblatt des Mega8 auch selbst herausfinden konntest...

Du kannst stattdessen einen der externen Interrupts verwenden.
Sei Dir aber bewusst, dass das Auswerten von Drehgebern mit Interrupt 
den Controller arg belasten kann, besonders bei Drehgebern ohne Rastung 
oder bei billigen mechanischen Drehgebern.

Ich bevorzuge (zumindest bei Drehgebern, die der manuellen Bedienung 
dienen) eine Variante, die vom Timer-Interrupt synchronisiert wird oder 
im Timer-Interrupt läuft. Dies läuft auch mit billigen Drehgebern aus 
Sonderposten zufriedenstellend.

Funktionsweise: Es wird aus den beiden aktuellen Drehgeberbits und den 
gemerkten Drehgeberbits der letzten Abfrage eine 4-Bit-Zahl gebildet 
(0..15) und der Increment-Wert (0, +1 oder -1) aus einer Lookup-Tabelle 
geholt und zum zu verstellenden Wert addiert. Das Prinzip ist auch im 
Wiki unter Drehgeber beschrieben.

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.