mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit Programm für Drehzahlmesser


Autor: Matthias Pues (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich habe bzw. wollte einen Drehzahlmesser für einen Elektromotor (mit
Rotor)bauen, der mit einem MC und einer Lichtschranke funktioniert. Der
MC (erstmal ein Mega8) zählt die Anzahl der externen Interrupts pro
Sekunde, ausgelöst durch die Lichtschranke, die unterbrochen wird. (in
dieser Fall löst der ext. Interrupt bei rising edge aus). Die Sekunde
wird durch einen Timer bestimt,der die Messung beendet. Der ermittelte
Wert, für höhere Drehzahlen in einem Registerpaar gespeichert, wird mit
60, bzw. bei einem 2-blättrigen Rotor mit 30 multipliziert und dann in
5 ASCII-Zeichen umgewandelt, die per UART/serielle Schnittstelle an
Hyperterminal gesendet werden. Zunächst funktionierte es nicht, es
kamen keine Signale am PC an. Als ich jedoch während des
Timerinterrupts, d.h. der Multiplikation, des Umwandelns und des
Sendens(welches glaube ich zu lange dauerte, schon eine neue Sekunde
verstrichen war) die Interrupts deaktiviert habe, sendete der Mc schön
"brav" nullen an Hyeperterminal.
Den ExtInterrupt habe ich erstmal mit einem taster (wie auch im
Tutorial) auf masse gezogen, und mit dem loslassen des tasters dann
ausgelöst.
Nun das Problem: Bei dem ersten Test gab es schon einen fehler, nach
den ersten 15 zeichen, (den ersten 3 Nullen) kam eine "wilde"
zeichenkette, danach funktionierte es scheinbar korrekt, bei einmaligem
drücken des tasters gab es den wert 60, bei schnellem drücken 120 etc,
(zu erwarten: vielfache von 60).
Beim zweitenm versuch sah die zeichenkette nur noch so aus:
    0    0    0  0019{pi (nun etliche sprünge aus dem sichtfenster)
¬c?A& `(?? 
                ¹<ébLK¡!  180  300  300  300  300  300  300  300  300
 300  300  300  300  300  300 usw.
außerdem "hängte" sich das pogramm immer nach ungefähr 10 Zeilen
auf(auch im ertsen Versuch), der Mc sendete gar nicht mehr.

Es wäre nett, wenn jemand meinen code durchsehen könnte, oder mir sagen
kann, woran der fehler liegen kann. Er mag vielleicht etwas umständlich
sein, es ist eines meiner ersten programme.
Dank im Voraus,
Matthias

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.