16 Bit Arithmetik

Gast #1901940
Lesenswert?
• ▲
▼
Hallo, ich habe ein Problem.

ich will eine Zeit zwischen zwei positiven Flanken stoppen. Dazu nutze 
ich den Timer1, merke mir die Overflows in r18 und die Zyklenanzahl aus 
HIGH(TCNT1) in r17 und LOW(TCNT1) in r16. Ich nutze einen 4 MHz 
Oszillator und einen ATMEGA8. Um jetzt auf die Zeit zu kommen, würde ich 
jetzt so rechnen:

t = 0,25us * ( r18 * 65.536 + r17 * ... + r16 * ... )

...wie kann ich mit den in TCNT1 stehenden Anzahl der Zyklen rechnen ?
...für die Rechnung r18 * 65536 bräuchte ich ein 24-Bit Register ?

Ich hoffe, ihr könnt mir weiterhelfen!
#1901949
Lesenswert?
• ▲
▼
@Daniel (Gast)

>ich will eine Zeit zwischen zwei positiven Flanken stoppen.

In welchem Bereich liegen die Zeiten?

> Dazu nutze
>ich den Timer1, merke mir die Overflows in r18 und die Zyklenanzahl aus
>HIGH(TCNT1) in r17 und LOW(TCNT1) in r16.

Macht man so nicht, dafür gibt es die ICP Funktion. Und bei Überläufen 
muss man aufpassen, dass man da keine Race Condtions reinbekommt.

>t = 0,25us * ( r18 * 65.536 + r17 * ... + r16 * ... )

>...wie kann ich mit den in TCNT1 stehenden Anzahl der Zyklen rechnen ?
>...für die Rechnung r18 * 65536 bräuchte ich ein 24-Bit Register ?

sieht so aus.

http://www.mikrocontroller.net/articles/AVR_Arithmetik

MFG
Falk
Gast #1902770
Lesenswert?
• ▲
▼
Hey Falk,

danke für deine Antwort. Der ICP Pin vereinfacht den Start aber kann man 
den Timer darüber auch wieder stoppen? (Mit der "2" positiven Flanke)

Ich muss zugeben dass mir die Arithmetik-Beispiele von deinem Link nicht 
all zu sehr helfen. Gibt es Bücher oder andere Seiten die mir da weiter 
helfen könnten?

Antwort schreiben

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.

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.