Forum: Mikrocontroller und Digitale Elektronik Timer1 Input Capture am AT90S2313


von remo (Gast)


Lesenswert?

Hi,

ich bekomme die Input Capture Funktion des Timer1 an meinem AVR einfach 
nicht zum Laufen.

Was ich eigentlich will:
Die Länge eines Impules messen, den ich an einem Pin des AVR anlege. Die 
externe Schaltung, welche den Puls schickt kann ich durch einen anderen 
AVR-Pin triggern.

Das Messprinzip:
Die Länge eines Pulses zu bestimmen sollte eigentlich nicht so schwer 
sein. Timer initialisieren, Puls triggern, wenn das Pulsende kommt, die 
Input Capture Funktion des Timer 1 nutzen und das Ergebnis aus den 
Captureregistern auslesen. So stellt ich mir das vor.

Als Versuchsaufbau hab ich den Timer1 des 2313 einfach mal Prescaler 256 
frei laufen lassen, das klappt problemlos. Doch das Capture will einfach 
nicht klappen. Ich hab dazu jetzt einfach mal durch polling den Pegel an 
PD6 (das ist der Capture Eingang) abgefragt und den Timer "zu Fuss" 
ausgelesen, wenn der Pegel auf 0 wechselt. Das klappt problemlos.

Wer kann mir ein Beispiel in Assembler schicken, wo ich die richtige 
initialisierung des Timers, des PortD6 und der Interruptmasken abkupfern 
kann???

Muss irged ein saublöder Fehler sein. Den find ich am besten dadurch 
raus, dass ich schau wie andere das gemacht haben.

P.S.: Gibt es eine einfachere Möglichkeit die Impulsdauer zu messen 
(16-bit sollten es schon sein)?

Danke für die Mühe und ciao
remo

von Matthias (Gast)


Lesenswert?

Hi

auch wenns schon öfters hier im Forum war:

www.matwei.de -> PC-Drehzahlmesser. Macht genau das was du willst.


Matthias

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.