Gast
#2046726
Hallo, ich habe eine IR-Hinderniserkennung nach folgender Anleitung gebaut: http://www.societyofrobots.com/member_tutorials/files/TSOP2.pdf Dabei wird mit einem ATMega8/8MHz mit dem Timer2 ein 36KHz-Signal erzeugt. TCCR2=0b00001010 bedeutet, das ein Prescaler von 8 und der CTC Modus verwendet wird. Also zählt der Timer2 in einer Sekunde 1 Mio Schritte. Demzufolge dauert ein Schritt 1 Mikrosekunde. Bei Zählerstand=OCR2 wird ein Interrupt ausgelöst und die Zählung beginnt wieder bei 0. Bei einer Frequenz von 36kHz muß der Ausgangspin aller 13,9 Mikrosekunden toggeln -> 1/(36000*2) OCR2 sollte doch dann den Wert 13 erhalten, oder? Der Timer2 zählt von 0 bis 13 => 14 Schritte a 1 Mikrosekunde = 14 Mikrosekunden. Warum ist in dem Code der zehnfache Wert? Seltsam ist, dass die Schaltung mit OCR2=139 funktioniert und mit OCR2=13 nicht? Kann mir jemand erklären, ob ich hier einen Denkfehler habe. Danke.