Forum: Compiler & IDEs Atmega 8515 zeit zwischen 2 externe Interrupts


von HeavyProgramming12 (Gast)


Lesenswert?

Hallo Leute,

ich programmiere seit neustem mit µController.
Im moment bin ich dran über einen drehgeber impulse einzulesen und 
dadurch drehgeschwindigkeit zu bestimmen.
Dazu habe ich externe Interrupts verwendet, was auch soweit 
funktioniert.
Bei Impuls auftritt kommt ein Interrupt, der diesen zählt. Um jetzt aber 
auch eine Geschwindigkeit zu erhalten, brauche ich die Zeit zwischen 2 
Impulsen. wisst ihr ob es da ein register gibt in der eine solche zeit 
auslesbar ist? im Internet habe in nichts gefunden.

von Karl H. (kbuchegg)


Lesenswert?

HeavyProgramming12 schrieb:

> Bei Impuls auftritt kommt ein Interrupt, der diesen zählt. Um jetzt aber
> auch eine Geschwindigkeit zu erhalten, brauche ich die Zeit zwischen 2
> Impulsen. wisst ihr ob es da ein register gibt in der eine solche zeit
> auslesbar ist?

So direkt nicht.
Aber du kannst dir im µC eine 'Uhr' einrichten.
Dein µC hat Timer. Davon suchst du dir einen aus, und lässt ihn laufen. 
Bei der Konfigurierung des Timers hast du eingestellt, wie schnell der 
Timer zählen soll. Hast du jetzt am Decoder ein Ereignis, siehst du 
einfach im Timer nach dem aktuellen Zählerstand und da du weißt, wie 
schnell der Timer zählt, kannst du den in eine Zeit umrechnen.

von HeavyProgramming12 (Gast)


Lesenswert?

Hi Danke für deine Antwort.

Mein CPU Oszillator  hat eine frequenz von 3.686 MHZ.
jetzt wollte ich mit dem Timer einstellen, dass dieser jede 1µs auslöst. 
kann man das mit der oben angegebenen frquenz überhaupt einstellen?
ich benutze übrigens das stk500 mit atmega8515

von Falk B. (falk)


Lesenswert?

@  HeavyProgramming12 (Gast)

>ich programmiere seit neustem mit µController.

Wie schön.

>Im moment bin ich dran über einen drehgeber impulse einzulesen und
>dadurch drehgeschwindigkeit zu bestimmen.
>Dazu habe ich externe Interrupts verwendet, was auch soweit
>funktioniert.

Aber falsch ist, siehe Drehgeber.

>Impulsen. wisst ihr ob es da ein register gibt in der eine solche zeit
>auslesbar ist? im Internet habe in nichts gefunden.

Nennt sich Timer.

>Mein CPU Oszillator  hat eine frequenz von 3.686 MHZ.

Hmm.

>jetzt wollte ich mit dem Timer einstellen, dass dieser jede 1µs auslöst.

Hälst du das für sinnvoll? Schon mal drüber nachgedacht, was deine CPU 
machen soll, wenn sie zwischen zwei Interrupts 3,6 Takte Zeit hat?

>kann man das mit der oben angegebenen frquenz überhaupt einstellen?

Nö.

>ich benutze übrigens das stk500 mit atmega8515

Schön. Aber fang mal bissel kleiner an. Lies z.B. mal was über 
Interrupts.

MFG
Falk

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.