" I have not failed. I've just found 10,000 ways that won't work". T.A.Edison
Code :
Of course, zero result ! Even ISIS say it's ok, my RC Blaupuntk don't react ! I have one original RC 10 remote (and receiver, of course) from one friend; works fine. But, if I try to transmit something with my schematic...zero result ! Any advice, please ?!?Code:' ' PIC12F675: +--U--+ ' +5V [ ] GND ' key 5 |---/--- >[ ]< ---/---| key 1 ' key 4 |---/--- >[ ]< ---/---| key 2 ' pull-up! key 3 |---/--- >[ ]>--[4K7]-- NPN Transistor, IR LED @ DEVICE PIC12F675, intrc_osc, wdt_off, pwrt_on, mclr_off, bod_off INCLUDE "MODEDEFS.BAS" DEFINE OSC 4 CMCON=7 OPTION_REG.7=0 GPIO = %00000000 ' All outputs = 0 on boot TRISIO = %00111011 WPU=%00111011 IOCB=%00111011 ANSEL=0 @ #DEFINE IRTX GPIO ; Define port to use for IR LED drive @ #DEFINE PIN 2 ; Define port pin to use for IR LED but1 var gpio.0 but2 var gpio.1 but5 var gpio.5 vplus CON 106 '// = ( 106 * 25uS) = 2650 uS burst vminus CON 130 '// = ( 130 * 25us) = 3250 uS burst vmute CON 202 '// = ( 202 * 25uS) = 5050 uS burst vpuls CON 27 '// = ( 27 * 25uS) = 675 uS burst delay var word cycles var byte acycles var byte timeX var byte GIE var intcon.7 ' global interrupt enable 1=on ; 0=off gpie var intcon.3 ' port change interrupt enable 1=0n ; 0=off gpif var intcon.0 ' port change interrupt flag bit GIE=0 GPIE=1 '========================================= main: @ sleep pause 100 IF but1=0 then ; VOLUME UP acycles = vplus delay = 2580 while but1=0 GOSUB IR_REMOTE wend ENDIF IF but2=0 then ; VOLUME DOWN acycles = vminus delay = 3200 while but2=0 GOSUB IR_REMOTE wend ENDIF IF but5=0 then ; MUTE acycles = vmute delay = 5000 while but5=0 GOSUB IR_REMOTE wend ENDIF GPIF=0 'Clear port change interrupt flag PAUSE 50 Goto Main '========================================= ir_REMOTE: cycles=acycles call Pulse pauseus delay cycles=vpuls ' ~ 670 uS call Pulse PAUSE 500 return '========================================= Pulse: '// Emits # of 39kHz bursts held in variable Cycles ASM bsf IRTX,PIN ; 1uS, LED=on goto $+1 ; + 2uS = 3uS goto $+1 ; + 2uS = 5uS goto $+1 ; + 2uS = 7uS goto $+1 ; + 2uS = 9uS goto $+1 ; + 2uS = 11uS goto $+1 ; + 2uS = 13uS bcf IRTX,PIN ; 1uS, LED=off goto $+1 ; + 2uS = 3uS goto $+1 ; + 2uS = 5uS goto $+1 ; + 2uS = 7uS goto $+1 ; + 2uS = 9uS decfsz _Cycles,f ; + 1uS = 10S goto _Pulse ; + 2uS = 12uS ENDASM RETURN '// Return to Main '===================================================== Debounce : For timeX= 1 to 50 Pause 5 next timeX Return '======================================== END




Bookmarks