mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timerprogrammierung


Autor: Manuwar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo zusammen,

ich verwende einen mega8535 und den c-compiler von codevision.
ich möchte in meinem programm über einen zeitraum von 2 sekunden die
impulsanzahl an einem pin aufnehmen.(dient zur drehzahlmessung)
nachdem ich mir das datenblatt von meinem controler angeschuat habe bin
ich genau so schlau wie vorher. ich möchte das ganze über einen timer
realisieren, und komm nicht weiter. würd mich freuen wenn mir hier
jemand einen vorschlag machen könnte!

gruß manuwar

Autor: Johann Meier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Da nimmst du am besten den PD6 (ICP), Pin 20 glaub ich beim 8535, als
Capture Interrupt. Hab ich in ner Schaltung erfolgreich so realisiert.
Ich laß die Signal vom Sensor auf den Pin laufen und zähle einfach
Timerimpulse zwischen zwei High/Low Flanken. Umgerechnet mit der
Taktfrequenz und den Impulsen pro Umdrehung (noch nen Filter drüber)
und du hast die Drehzahl.

Das Meßsystem ist allerdings anders wie bei dir.
Wenn du Impulse über 2 Sekunden zählen willst, hast du eine ziemlich
träge Drehzahlmessung. Oder hast du eine sehr langsame Drehzahl?

Mit Code kann ich dir leider nicht dienen, da ich das ganze in Bascom
geschrieben habe.

Gruß
Johann

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Ich würde vorschlagen, Du lässt erstmal mit nem Timer ne LED blinken
und versuchst zu verstehen, wie die Timer funktionieren.

Dann überlegst Du Dir, wie Du die Impulse zählst, immer schön einen
Schritt nach dem anderen.

Ansonsten:
Timer einstellen und laden für Überlauf nach 2s
In der Überlauf-ISR ein flag setzen

Schleife1:
Wenn Puls = 1 dann Var hochzählen und Schleife2
   Schleife2:
   wenn Puls = 0 dann exit Schleife2
   wenn Timerüberlauf dann exit Schleife2
wenn Timerüberlauf dann exit Schleife1

Ist Dir damit geholfen?

Gruß,
Norbert

Autor: Manuwar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo norbert,

kannst du mir bitte sagen wie ich die zeit beim timer einstellen kann!
komm mit dem datenblatt echt nicht zurecht.
ich lass jetzt den timer als overflow interrupt laufen und nehm über
einen externen interrupt die impulse für meine drehzahl auf. im timer
interrupt wird dann die anzahl der impulse ausgewertet. aber die zeit
für den timer, da weiß ich einfach nicht wie das geht!

gruß manu

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.