Wie kann ich mit dem ATmega16 rechnen?

Gast #93493
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!
Gast #93494
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
Gast #93495
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).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.