Forum: Mikrocontroller und Digitale Elektronik input capture Mega8


von Jörg Haas (Gast)


Lesenswert?

Hallo liebe Leute,

nachdem bei meinem ATmega8 nun nahezu jede Peripherie
funktioniert, gibt es ein Verständnisproblem beim initialisieren
des T1 input capture modes. Das Handbuch sagt meines Erachtens nichts
darüber, wie man diesen Mode einschaltet.

void timer1_init(void) {    //Timer1

outp(0x01,   TCCR1B);                  /* Counter, ICNC1*/


....  ? ....


}


Was wäre denn hier noch zu setzen? TIMSK und TIFR sind klar.


Vielen Dank, viele Grüße
joh

von Sven Müller (Gast)


Lesenswert?

Timer gestartet? (war mal mein Fehler)
Globale Interrupt aktiviert?

TIMSK hast du ja schon..
Was willst du denn mit TIFR? das ist doch nur das Flag Register..

von Bernd Walter (Gast)


Lesenswert?

Ich habe für beide Flanken mal folgendes verwended:
TCCR1B |= _BV(ICNC1) | 2;
TIMSK |= _BV(TICIE1);
sei();

SIGNAL(SIG_INPUT_CAPTURE1)
{
        if (TCCR1B & _BV(ICES1)) {
                TCCR1B &= (uint8_t)~_BV(ICES1);
        } else {
                TCCR1B |= _BV(ICES1);
        }
}

Das Handbuch hat dazu ausgereicht.

von Jörg Haas (Gast)


Lesenswert?

Hallo Bernd,


ja bei mir hat das Handbuch jetzt auch gereicht.
Manchmal stören die Tomaten auf den Augen doch
etwas.

Schönen Dank
joh

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.