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