Witam
Podpinam odbiornik TSOP1736 do atmegi16 zgodnie ze schematem:
Jako nadajnik używam diody LD271. Dioda świeci widać to w aparacie.
Do procesora wrzucam kod który generuje mi 36kHz dla diody i odczytuje sygnał z odbiornika.
Wydaje mi się że powinno działać ale niestety tak nie jest. Ma ktoś jakiś pomysł jak to rozwiązać??
Pozdrawiam
Tomek
Podpinam odbiornik TSOP1736 do atmegi16 zgodnie ze schematem:
Jako nadajnik używam diody LD271. Dioda świeci widać to w aparacie.
Do procesora wrzucam kod który generuje mi 36kHz dla diody i odczytuje sygnał z odbiornika.
// IR LED is connected to PORTC3,
// output of TSOP is connected to PORTC4.
volatile static unsigned char flag=0b00000000 ;
volatile unsigned char pulses=0;
ISR(TIMER2_COMP_vect)
{PORTC=PORTC^(flag);
pulses++;
};
// main program
int main (void)
{
DDRC=0b00001000;
DDRD=0b00000001;
TCCR2=0b00001010;
OCR2=139;
TIMSK|= (1<<(OCIE2));
sei();
while(1)
{
if ((pulses>=25)&&(bit_is_set(flag,3)))
{
pulses=0;
flag=flag&0b11110111;
}
if ((pulses>=60)&&(bit_is_clear(flag,3)))
{
pulses=0;
flag=flag|0b00001000;
}
if (bit_is_clear(PINC,4))
{
PORTD=(PORTD|0b00000001);
}
else
{
PORTD=(PORTD&0b11111110);
}
}
}
Wydaje mi się że powinno działać ale niestety tak nie jest. Ma ktoś jakiś pomysł jak to rozwiązać??
Pozdrawiam
Tomek