Hallo
Ein symetrisches Rechteck sollte man am Oszi nur sehen, wenn Pause:Puls genau 50:50 ist, das ist eben bei OCR2 = 0x91; der Fall. Vielleicht hilft dir das bei der Analyse des Programms....aber nur so lange einer der Taster gedrückt ist, ist ein symetrischen Rechteck zu sehen
Bei 36kHz dauert eine Periode 1/36000s. Die Anzahl der Countertakte einer Periode beträgt 8000kHz/36kHz=222. Bei OCR2 = 0x91 beträgt die Dauer einer Halbwelle genau 256-145=111 Countertakte. Bei OCR2=254 (0xFE) ist das Tastverhältniss 221:1 für Pause:Impuls, der Impuls dauert dann 1/36000/222! Wenn dein Oszi auf 36kHz triggert, können die "Peeks" des Impulsanteils schon mal mit 1,5V gemessen werden. Erhöhe mal die Zeitauflösung des Oszi.
Ach, noch eine Anmerkung zum SerPrint(): Die 36kHz mit ihrem Pause-Impulsverhältniss wird im Hintergrund erzeugt und durch das Senden von Zeichen über die serielle Schnittstelle nicht beeinflußt.
Noch ein schnelle Blick aufs Programm:
{
UCSRB = 0;
OCR2 = 0xFE;
damit überschreibst du OCR2 = newocr2; !
Gruß
mic
Lesezeichen