www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie kann ich mit dem ATmega16 rechnen?


Autor: Zoffi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich will mir einen Drehzahlmesser für mein Auto bauen.
Also ich hab mir das so vorgestellt:
Sobald eine Zündung erfolgt wird per Interrupt der Timer ausgelöst und
beginnt zu zählen. Kommt wieder eine Zündung stopt der Timer und der µC
kann dann die Drehzahl ausrechnen und auf einem Display ausgeben.
Aber jetzt kommt der schwierigere Teil: Die Rechnung!
Von Zündzeitpunkt zu Zündzeitpunkt bedeutet eine Umdrehung. Der Timer
erfasst die Zeitzyklen die der Motor für eine Umdrehung braucht.
Demnach komme ich auf diese Formel wenn ich das Ergebnis in 1/min haben
will.

60/[Zyklen*(1/CPU Takt/1024)]

Der Term in der () entspricht dem Prescaler der auf 1/1024 eingestellt
ist.
Wie führe ich diese Rechnung aus? Es handelt sich dabei um einen 16Bit
Timer.
Wie kann ich ein Registerpaar (16Bit) mit einer Zahl multiplizieren
oder dividieren?

Ich programmiere in Assembler!

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Solange wie man durch 2,4,8,16,32,64,128...... teilen oder mul. will ist
das einfach rotation des 16 bit wortes nach rechts oder links.
und für den rest eine schleife mit einer addition (dauert ewig)also es
gibt einige lösungen einfach mal ein bisschen rechnen :-)

mfg uli

Autor: ---- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zwei Anmerkungen:

(1/CPU Takt/1024) ist konstant und kann schon jetzt von dir
ausgerechnet werden - muß also nicht dauernd zur Laufzeit geschehen.

> einfach rotation des 16 bit wortes nach rechts oder links
muß heissen: schieben (und nicht Rotation)!

----, (QuadDash).

Autor: Hanno (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Von Zündzeitpunkt zu Zündzeitpunkt bedeutet eine Umdrehung.
... Stimmt beim Otto-(4-Takt-)Motor nicht ganz: Von Zündung zu Zündung
sinds zwei Umdrehungen :)

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.