Hallo
Da ist mir ein kleiner "Fehler" unterlaufen, timebase und gettime() gibt es nicht in der orginalen Library:
aus asoro.c v2.1volatile unsigned char count72kHz;
/* uses timer2 (36kHz for IR communication */
/* counts falling and rising edge => 36kHz*2 = 72kHz */
SIGNAL (SIG_OUTPUT_COMPARE2)
{
count72kHz ++;
}
Spätere Versionen mit dem 36kHz-Timer verwenden timebase so:
cli() und sei() verwende ich vorsichtshalber, denn einen long-Wert auf null zu setzen benötigt mehr als einen Befehl und könnte deshalb vom Timerinterrupt unterbrochen werden.volatile unsigned char count36kHz;
volatile unsigned long timebase;
volatile int autoencode=FALSE;
/* uses timer2 (36kHz for IR communication */
SIGNAL (SIG_OVERFLOW2)
{
TCNT2 += 0x25;
count36kHz ++;
if (!count36kHz) timebase ++;
}
Gruß
mic
Lesezeichen