Hallo, nachdem ich viel Zeit vor dem Mega und im Inernet verbracht habe muss ich nun euch um Hilfe bitten. Ich möchte bei einem AtMega8 mit Timer1(16-Bit) sowohl den Compare Match Mode als auch Input Capturing benuzen. Ist das überhaupt möglich? Hab vieles ausprobiert und immer wenn ich den Compare Match an gemacht habe startet der µC neu. Kann mir jemand sagen welche register ich setzten muss? Vielen Dank im Vorraus! Felix
>Ist das überhaupt möglich?
Ja.
Irgenwo hier im Forum habe ich einen Quellcode gepostet, der genau diese
Funktion für Modellbauservos nutzt. Ich sollte ihn vielleicht mal in die
Codesammlung packen...
Hi, hab mich heute noch mal drann gesetzt und die Fheler gefunden. Hier nun noch mal vür alle die das gleiche Problem haben:
1 | TCCR1A = 0; |
2 | TCCR1B = 0; |
3 | TCCR1B |= (1<<CS10) + (1<<CS11)+ (1<<WGM12) + (1<<ICES1) + (1<<ICNC1); // Prescaler 64, IC an,Noice Cancel an |
4 | |
5 | TIMSK |= (1<<OCIE1A)+ (1<<TICIE1); // Compare Interrupt, IC interrupt |
6 | OCR1A = 57600; // Compare grenzwert setzten |
7 | sei(); // Interrupts aktivieren |
Die Interrupt rutienen heisen dann:
1 | SIGNAL(SIG_OUTPUT_COMPARE1A) // Timer1 Überlauf |
2 | {
|
3 | ++sekunden; // zählen der Überläufe |
4 | }
|
5 | |
6 | |
7 | ISR(TIMER1_CAPT_vect) // Flanke an ICP pin |
8 | {
|
9 | Timer = ICR1; // Stand des IC lesen |
10 | |
11 | |
12 | send_time(Timer); // Zeit senden |
13 | |
14 | }
|
lg Felix
Hallo Felix, und wo war nun der Stolperstein bei dir bzw. auf was war zu achten?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.