works perfectly for me if you don't  try to use qualifier before you actually set it to a meaningful value  as rocket troy indicated
	Code:
	#CONFIG; set CONFIG1 for internal oscillator, watchdog on, MCLR pin as OFF
 __config _WDTE_ON & _MCLRE_OFF & _INTOSCIO & _PWRTE_ON
#ENDCONFIG
OSCCON = %  01100000 ' Set system clock 4MHz
DEFINE OSC 4 '  PBP timing to 4MHz system clock
OPTION_REG.7 = 0 ' Enable Weak Pullups Control
WPU = %  00100000 ' Disable all Weak Pullups except GPIO.5
ANSEL = 0 ' No analog inputs
TRISIO = %  00111001 ' Make GP1, GP2 outputs. GP0, GP3, GP4 & GP5 = inputs
CMCON0 = %  00000111 ' Turn off comparators
IDByte var byte ' Receiver ID.
IDByteRx var byte ' New IDByte
Z1Alarm var GPIO.2 ' Zone1 Alarm LED
Z2Alarm var GPIO.1 ' Zone2 Alarm LED
ProgIDRx var byte ' Received Programmer ID
PrgIn var GPIO.5 ' Programmer Detect & Data Port
ProgIDRx = $d  '   define qualifier
gpio=0
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''
MainLoop:
Serin PrgIn,1,[ProgIDRx],IDByteRx ' Wait  for new I.D. to arrive
GOSUB UpdateID ' Verify arrival and execute UpdateID Subroutine
GOTO MainLoop
UpdateID:
Z1Alarm = 1 : Z2Alarm = 1 ' LEDs to Confirm programing Subroutine
PAUSE 500
Z1Alarm = 0 : Z2Alarm = 0 ' Turn off LEDs
PAUSE 1000
Z1Alarm = 1 : Z2Alarm = 1 ' LEDs to Confirm in programing mode
PAUSE 1000
Z1Alarm = 0 : Z2Alarm = 0 ' Turn off LEDs
IDByte = IDByteRx
'Write 1, IDByte ' Write new ID to EEPROM
RETURN
ENd
 
				
			
Bookmarks