www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Drehimpulsgeber an ATTiny


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

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,

ich habe aktuell ein Problem mit einem kleinen Projekt, bei dem ich 
einen Tiny13 und einen Drehgeber verwende.

Der Hardwareaufbau ist am Anfang des Codes Beschrieben, ich verwende die 
internen Pullups und den Internen Takt 9,6Mhz ohne Teiler.

Ich habe Teile des Codes von Peter Danegger verwendet zum auslesen des 
Drehimpulsgebers.

Mein Ausgangssignal soll aktiv low sein. Ich habe den Timer mal gemessen 
und er läuft mit ca. 64 kHz


MfG Martin

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut soweit. Und die Frage lautet?

> Ich habe Teile des Codes von Peter Danegger verwendet zum auslesen des
> Drehimpulsgebers.
Und selber dazugebastelt/gemurkst...
        _delay_us(5);
        :
        _delay_us(10);
Weißt du, was du hier tust? Nein? Warum tust du es dann?
Was soll mit den delays besser werden?

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,

ja ich weiß was ich da tue, es ist nur zum Testen um eine saubere Flanke 
zu erzeugen. Das Port toggeln habe ich nur zum messen hinzugefügt, es 
ist das gleiche Problem, wenn man es weg lässt.

Es war quasi nur Debuggen, Entschuldigung, das ich es noch drin gelassen 
habe.


MfG Martin

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin schrieb:
> ich habe aktuell ein Problem mit einem kleinen Projekt, bei dem ich
> einen Tiny13 und einen Drehgeber verwende.

Und das Problem wäre?

Für den 2-schrittigen Encoder mußt Du auch die entsprechende 
Auslesefunktion verwenden, sonst funktioniert die Entprellung nicht.

Im Interrupt rumzumären ist ne ganz schlechte Idee.


Peter

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gute Tag,

Das ich zu viel im Interrupt mache könnte seien, danke für den Tipp ich 
werde das gleich mal testen.

Das mit dem 2-schrittigen Encoder mache ich ja mit,
 if (!(enc_delta % 2)) { 

das funktioniert eigentlich auch ganz gut bei meinen anderen Projekten. 
Die Entprellung ist dabei noch nie ein Problem gewesen.

MfG Martin

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag nochmal,

ich habe gerade die IO-Zugriffe aus dem Interrupt geholt und die Delays 
auch entfernt.

Leider passiert immer noch einfach nichts an den Ausgängen.

Hat vielleicht noch jemand eine Idee ?


MfG Martin

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Leider passiert immer noch einfach nichts an den Ausgängen.
Kannst du überhaupt irgendwas mit den Pins anstellen?

Zeig mal den aktuellen Code und sag, was du erwarten würdest...

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,

so ich habe den Fehler gefunden, meine generierten Impulse an den IOs 
waren zu knapp bemessen, deswegen war es nur ein kurzes schwanken.

Vielen Dank für die Hilfe.


MfG Martin

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.