Drehgeber Auswerten an Attiny13 und Atmega8 bascom

Gast #1228533
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
Angehängte Dateien:
Gast #1228799
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

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.