I did it this once for you , problem is definitely elsewhere
and
DMY = W0//256
Pulse[75] = (255 - DMY)
can be simplified to
Code:
#CONFIG
__config _CONFIG1, _FOSC_INTOSC & _CP_OFF & _WDTE_ON & _PWRTE_ON & _MCLRE_ON & _CLKOUTEN_OFF
__config _CONFIG2, _PLLEN_ON & _LVP_OFF
#ENDCONFIG
DEFINE OSC 32
OSCCON=$70
ANSELA=0
ANSELC=0
TRISA = %111110
TRISC = %11111111 ' set PORTC I/O
j var byte
k var word
l var byte
pulse var byte[76]
decode var byte[4]
w0 var word
dmy var byte
DEFINE DEBUG_REG PORTA
DEFINE DEBUG_BIT 0 ; if not used for pwr
DEFINE DEBUG_BAUD 9600
DEFINE DEBUG_MODE 0
pause 2000
Debug "Start",13 ,10
main:
gosub XBee_Value
Pulse[0] = "1"
Pulse[1] = "5"
Pulse[2] = "0"
Pulse[3] = " "
Pulse[4] = "A"
Pulse[5] = "0"
Pulse[6] = "="
Pulse[7] = Decode[3]
Pulse[8] = Decode[2]
Pulse[9] = Decode[1]
Pulse[10] = Decode[0]
' CIndex = 1
gosub XBee_Value
Pulse[11] = " "
Pulse[12] = "A"
Pulse[13] = "1"
Pulse[14] = "="
Pulse[15] = Decode[3]
Pulse[16] = Decode[2]
Pulse[17] = Decode[1]
Pulse[18] = Decode[0]
' CIndex = 2
gosub XBee_Value
Pulse[19] = " "
Pulse[20] = "A"
Pulse[21] = "2"
Pulse[22] = "="
Pulse[23] = Decode[3]
Pulse[24] = Decode[2]
Pulse[25] = Decode[1]
Pulse[26] = Decode[0]
'------------------
' CIndex = 3
gosub XBee_Value
Pulse[27] = " "
Pulse[28] = "A"
Pulse[29] = "3"
Pulse[30] = "="
Pulse[31] = Decode[3]
Pulse[32] = Decode[2]
Pulse[33] = Decode[1]
Pulse[34] = Decode[0]
' CIndex = 4
gosub XBee_Value
Pulse[35] = " "
Pulse[36] = "A"
Pulse[37] = "4"
Pulse[38] = "="
Pulse[39] = Decode[3]
Pulse[40] = Decode[2]
Pulse[41] = Decode[1]
Pulse[42] = Decode[0]
' CIndex = 5
gosub XBee_Value
Pulse[43] = " "
Pulse[44] = "A"
Pulse[45] = "5"
Pulse[46] = "="
Pulse[47] = Decode[3]
Pulse[48] = Decode[2]
Pulse[49] = Decode[1]
Pulse[50] = Decode[0]
'------------------
' CIndex = 6
gosub XBee_Value
Pulse[51] = " "
Pulse[52] = "A"
Pulse[53] = "6"
Pulse[54] = "="
Pulse[55] = Decode[3]
Pulse[56] = Decode[2]
Pulse[57] = Decode[1]
Pulse[58] = Decode[0]
' CIndex = 7
gosub XBee_Value
Pulse[59] = " "
Pulse[60] = "A"
Pulse[61] = "7"
Pulse[62] = "="
Pulse[63] = Decode[3]
Pulse[64] = Decode[2]
Pulse[65] = Decode[1]
Pulse[66] = Decode[0]
' CIndex = 8
gosub XBee_Value
Pulse[67] = " "
Pulse[68] = "A"
Pulse[69] = "8"
Pulse[70] = "="
Pulse[71] = Decode[3]
Pulse[72] = Decode[2]
Pulse[73] = Decode[1]
Pulse[74] = Decode[0]
'------------------ Start CRC Function
W0 = 0
For DMY = 0 To 74
W0 = W0 + Pulse[DMY]
next DMY
DMY = W0//256 ; why ?
Pulse[75] = (255 - DMY) ; why ?
; this line could replace the above two lines ie Pulse[75]=~w0
l=~w0 ;debug proof of above
j=w0 ;debug
' -------------------- End CRC function
Debug 13 ,10 ,#w0,9,#dmy,9,#j ,9,#Pulse[75],9 ,#l
pause 1000
goto main
XBee_Value:
for j=0 to 3
random k
Decode[j]=k
next
return
Bookmarks