Первое что решил сделать это разобраться с TSOP 1736.Собрал на своей монтажке.
Как видно из следуещей фотографии при прямой видимости тсоп срабатывает и светится светик
Проблема заключается в том что если я делаю импровезированное препятствие тсоп срабатывает только при расстоянии до 3 сантиметров =( хотелось бы больше
Вот код программы ( codevisionavr 2,Atmega8,кварц на

- Код: Выделить всё
- #include <mega8.h>
 char TimerCount = 0;
 //-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 void SetIRLed()
 { PORTC.0 = ~PORTC.0; }
 //-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 void SetLightLed(unsigned char flag)
 { PORTC.5 = flag; }
 
 //-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 interrupt [TIM0_OVF] void timer0_ovf_isr(void)
 {
 // Reinitialize Timer 0 value
 // TCNT0=0x14;
 
 if(TimerCount<28)
 SetIRLed();
 else
 PORTC.0 = 0;
 TimerCount++;
 if(TimerCount==56)
 TimerCount = 0;
 }
 //-_-_-_-_ главная функция -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
 void main(void)
 {
 PORTB=0x00;
 DDRB=0x00;
 PORTC=0x00;
 DDRC=0x7F;
 PORTD=0x00;
 DDRD=0x00;
 TCCR0=0x01;
 TCNT0=0x6F;
 TCCR1A=0x00;
 TCCR1B=0x00;
 TCNT1H=0x00;
 TCNT1L=0x00;
 ICR1H=0x00;
 ICR1L=0x00;
 OCR1AH=0x00;
 OCR1AL=0x00;
 OCR1BH=0x00;
 OCR1BL=0x00;
 ASSR=0x00;
 TCCR2=0x00;
 TCNT2=0x00;
 OCR2=0x00;
 MCUCR=0x00;
 TIMSK=0x01;
 ACSR=0x80;
 SFIOR=0x00;
 // Global enable interrupts
 #asm("sei")
 while (1)
 {
 if(PIND.1)
 SetLightLed(0);
 else
 SetLightLed(1);
 };
 }
Подскажите пожалуйста в чём проблема,хотелось бы большее расстояние.
Проект кодвизиан присоединен в архиве к топику


 
 
 
 






