ok i have another question.my code is working the below one.
as i am very new to pic basic pro i just have one more question and i know that it is a piece of cake for u guys. ok in my code the sensor is on portb.2
and i am showing the output on portb.5.ok
the portb.5 is being turned high infinitly when it detects an incoming signal.i want to turn it back low (infinetly)when it detects the signal again and again back high when detects the signal again. can it be done???
maybe using an ISR?can anyone guide me or help me out???
Code:'**************************************************************** '* Name : UNTITLED.BAS * '* Author : [select VIEW...EDITOR OPTIONS] * '* Notice : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 5/23/2011 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** 'include "ALLDIGITAL.pbp" @ DEVICE pic16F877a, WDT_OFF ' Watchdog Timer @ DEVICE pic16F877a, PWRT_OFF ' Power-On Timer @ DEVICE pic16F877a, BOD_OFF ' Brown-Out Detect @ DEVICE pic16F877a, LVP_OFF ' Low-Voltage Programming @ DEVICE pic16F877a, CPD_OFF ' Data Memory Code Protect @ DEVICE pic16F877a, PROTECT_OFF ' Program Code Protection @ DEVICE pic16F877a, HS_OSC Define OSC 20 cmcon=2 Header var word Body var word i var byte tmp var Byte irButton var byte irDevice var byte irIN var PortB.2 SonyLED var PortB.5 'TrisA = %00000100 TrisB = %00000100 Start: LOW SONYLED IRBUTTON=255: IRDEVICE=255 Pulsin irin,0,header if header < 1000 or header > 1350 then goto Start check: for i =0 to 11 pulsin irin,0,tmp if tmp >= 500 then Body.0[i]=1 'Sony Logic 1 is 120 else Body.0[i]=0 ' Sony Logic 0 is 60 endif next IRBUTTON = Body & %01111111 if IRBUTTON <=9 then loop: high Sonyled goto loop endif pause 100 goto start




Bookmarks