IRremote + Received unknown

Hallo forum,

augenblicklich beisse ich mir die Zähne an der IR Fernbedienung aus.

Ich habe auf einem breadboard exakt die Hardware nachgebaut, die auf einer Platine gelötet ist. Einziger Unterschied: auf dem breadboard arbeitet der Arduino uno, auf der Platine der Atmega 328p OHNE externen Quartz.

Als IR Empfänger dient beiden ein TSOP 31238.

Nun das fürmich unverständliche:
aud dem UNO klappt das Erkennen der Fernbedienung sofort (NEC), es lassen sich mit dem Sketch die Tasten problemlos belegen.

Auf den Atmega übertragen klappt alles - nur das Erkennen der gleichen Fernbedienung nicht. Komischerweise erkennt der Atmega offensichtlich das Signal, kann es aber nicht auswerten.

Die FUSES sind korrekt eingestellt, aber irgendwie scheint es mit dem Timing Probleme zu geben. Weiss jemand weiter?? Ich habe mir echt die Finger wundgetippt, komme aber einfach nicht weiter.

Meinolf

Das die Timings nicht klappen ist logisch. Der Atmega328P Uno arbeitet mit einem 16MHz Resonator. Ein Atmega 328P arbeitet bei Werkseinstellung mit dem internen Oscilator bei 8MHz(?).

Aber ich sehe hier weder Sketch, noch Schaltbild (Bild) noch irgend einen Link zur Verwendeten Hardware

Die Frequenz selbst wird von der Lib berücksichtigt:

#define TIMER_CONFIG_KHZ(val) ({
const uint8_t pwmval = SYSCLOCK / 2000 / (val);
TCCR2A = _BV(WGM20);
TCCR2B = _BV(WGM22) | _BV(CS20);
OCR2A = pwmval;
OCR2B = pwmval / 3;
})

Die Compare Register passen sich dann automatisch an

Vielleicht macht die Ungenauigkeit des RC-Oszillators Probleme? Den kann man kalibrieren. Reply #11 und #12:
http://forum.arduino.cc/index.php?topic=246432.msg1764511#msg1764511

Am besten mal den Blink Sketch laufen lassen und gucken ob die Zeit stimmt. Dann siehst du ob er wirklich korrekt läuft.