Frequenzmessung/AnalogComparator

Gast #5283969
Lesenswert?

Hallo,

ich wollte eine Frequenzmessung mittels eines Mega 128 machen. Das 
Rechtecksignal liegt an PA0 an. Dazu der ADMUX um den Comparator diesen 
Pin zuzuweisen. Diesen möchte ich nun auf meinen Timer1 anlegen. Dies 
sollte so funktionieren:
1
ADMUX=0x10;              //PA0 am Int-Comparator anlegen
2
ADCSRA=0;                //ADC disable
3
ACSR = (1<<ACIC)|(1<<ACBG)|(1<<ACIE)|(1<<ACIS1);   //Comparator Ausgang ist Verbunden mit Timer1,Referenzspannung an, InterruptEnable, Interrupt bei FallingEdge

Nun den Timer1 initialisieren:
1
TCCR1B = (1<<ICES1)|(1<<CS10)|(1<<CS12)|(1<<CS10);       //Vorteiler (1024) und Capturemode (Rising Edge) eingeben  
2
    TIMSK = (1<<TICIE1);  //Timer 1 in Capture+Overflow-Modus

Ich wollte von euch wissen, ob das so geht, was man beachten muss wenn 
man den internen Comparator nutzt und ob Ihr vllt noch simple Beispiele 
für mich habt, wie es dann weitergehen könnte.
Ich hatte an folgendes Beispiel gedacht:
https://www.mikrocontroller.net/attachment/20833/FreqCount.c
von
https://www.mikrocontroller.net/user/show/kbuchegg
Gast #5284133
Lesenswert?

Matze schrieb:
> Nun den Timer1 initialisieren:TCCR1B =
> (1<<ICES1)|(1<<CS10)|(1<<CS12)|(1<<CS10);       //Vorteiler (1024) und
> Capturemode (Rising Edge) eingeben
>     TIMSK = (1<<TICIE1);  //Timer 1 in Capture+Overflow-Modus

Ich weiß ja nicht, welchen Frequenzbereich Du messen möchtest, aber für 
Timer1 den Vorteiler zu aktivieren ist völlig unnötig.
Es ist egal, ob Du ICPx nutzt oder den Analog-Komparator über AIN0/AIN1 
oder ADMUX.
Beispiele, wie es weiter gehen kann (inkl. Arduino + Bascom), findest Du 
hier: http://mino-elektronik.de/fmeter/fm_software.htm

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren