Hier https://www.roboternetz.de/community...-Ambient-Light ist ein altes Projekt von mir. Mit dabei ist Code, der RC5 auswertet. Läuft bei mir auf einem Atmega8, sollte aber anpassbar sein für ATTinys. Das was im Schaltplan an PD2 hängt, ist der TSOP1733 IR-Sensor. Der ist allerdings hauptsächlich auf 33kHz empfindlich. Die RC5 Dekodierung stammt von Peter Dannegger.
Code:
// read RC5 signal of remote control
// thanks to Peter Dannegger
ISR(SIG_OVERFLOW0)
{
unsigned int tmp = rc5_tmp; // for faster access
TCNT0 = -2; // 2 * 256 = 512 cycle
toggleflag++;
if(toggleflag>=4)
{
toggleflag=0;
sleepcount++;
}
if( ++rc5_time > PULSE_MAX )
{ // count pulse time
if( !(tmp & 0x4000) && tmp & 0x2000 ) // only if 14 bits received
rc5_data = tmp;
tmp = 0;
}
if( (rc5_bit ^ xRC5_IN) & 1<<xRC5 )
{ // change detect
rc5_bit = ~rc5_bit; // 0x00 -> 0xFF -> 0x00
if( rc5_time < PULSE_MIN ) // to short
tmp = 0;
if( !tmp || rc5_time > PULSE_1_2 )
{ // start or long pulse time
if( !(tmp & 0x4000) ) // not to many bits
tmp <<= 1; // shift
if( !(rc5_bit & 1<<xRC5) ) // inverted bit
tmp |= 1; // insert new bit
rc5_time = 0; // count next pulse time
}
}
rc5_tmp = tmp;
}
Grüße von der Katze
Lesezeichen