Hiho,
ich habe hier einen TSOP1736 an einem Atmega8 (8 Mhz, kein Teiler für
Int!) mit einem 10k PullUp Wiederstand gegen VCC stehen.
Mit meiner kleinen Routine:
1 | void Timer2verflow_ISR() org IVT_ADDR_TIMER2_OVF
|
2 | {
|
3 | if(PINB.B3 == 0) {runner++;Ok = 1;}
|
4 |
|
5 | if(PINB.B3 == 1 && Ok == 1)
|
6 | {
|
7 | itoa(text,runner);
|
8 | UART1_Write_Text(text);UART1_Write_Text(" ");
|
9 | runner = 0;
|
10 | OK=0;
|
11 | }
|
12 | }
|
13 |
|
14 |
|
15 | ...
|
16 |
|
17 | SREG_I_bit = 1;
|
18 | TOIE2_bit = 1;
|
19 | TCCR2 = 1;
|
20 | ...
|
messe ich die Laufzeit des TSOP Signales, jedoch habe ich so meine
kleinen Probleme damit. Als Ausgabe bekomme ich folgendes.:
1 | 85 16 19 16 38 16 16 6 2 16 18 11 30 6 30 15 16 6 2 16 5 29 16 16 7
|
Bei vielen verschiedenen Fernbedienungen bekomme ich immer andere Signal
rein. Was mich nun stutzig macht ist die erste Laufzeit (oben die 85)
diese ändert sich sehr starkt zu anderen Fernbedienung, mal mehr (bis zu
270) mal garnicht da. Desweiteren dachte ich das die Daten aus 14
Halb-Bit bestehen, jedoch sie sind aber um einiges länger?! Kann ich mir
irgendwie die Laufzeit errechnen?!
Viele Fragen, für viele ist die Lösung auch selbstverständlich, ich
jedoch blicke gegen einen Uhrwald :/ Das Datenblatt hilft mir leider
auch nicht weiter.