Mega8 CTC und IC

Gast #1584253
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
Gast #1584262
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...
Gast #1584887
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

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