Forum: Mikrocontroller und Digitale Elektronik Mega8 CTC und IC


von Felix (Gast)


Lesenswert?

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

von STK500-Besitzer (Gast)


Lesenswert?

>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...

von Felix (Gast)


Lesenswert?

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

von Marc (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.