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