Gast
#711094
Hi Leute, ich arbeite zZ. mit ATmega168 und will den ICP benutzen. Dabei bin ich auf eine Diskrepanz zum Datenblatt gestoßen und falle so langsam vom Glauben ab. Laut Datenblatt: "The Input Capture is updated with the counter (TCNT1) value each time an event occurs on the ICP1 pin..." Das heist, wenn am ICP1 Pin laut eingestellter Edge ein Event auftritt dann kopiert die Hardware den TNCT1 Wert in das ICR1 Register. Nun das ist falsch. Mein Timer1 läuft permanet durch. Ich habe den ICP IQR aktiviert und in dieser ISR setze ich ICR1 auf 0. Beim nächsten Event steht dann im ICR1 nur die Differenz in Takten und nicht der Timer1 TCNT1 Wert drinnen ! Das bedeutet, das ICR1 register wird synchron zum TCNT1 getaktet bis ein ICP Event auftritt. So würde ich diese Arbeitsweise interpretieren. Testweise natürlich mal schnell in der ISR den ICR1 statt auf 0x0000 mal auf 0xF000 gesetzt, und siehe da beim nächsten Event steht im ICR1 0xF000 + X als Wert drinnen. Also eine Relativmessung und nicht den TCNT1 Wert übernommen, so wie im Datenblatt beschrieben. Irgendjemand hier der eine Aussage treffen kann ? Gruß Hagen