I haven't got a digital version of the circuit diagram, but I can tell you that there is a pull up resistor on MCLR. The input lines will eventually be toggled by another micro so right now they don't have pull down resistors, I suspected residual charge on the pins before so I tried rigging up a pull down resistor (just loosely) and it didn't appear to help, I should try it again properly to make sure however.
EDIT: for reference here is the whole program
Code:
' Porta-0 = Y acceleration $81 then $85
' Porta-1 = X acceleration $89 then $8D
' Porta-2 = Pressure $91 then $95
' Portb-0 = Arm input
' Portb-1 = Machdelay input
' Portb-2 = Apogee charge
' Portb-3 = Main charge
' Portb-4 = Buzzer
Symbol PortB = 6 'PortB is register 6
Symbol TrisB = $86 'PortB data direction is register hexadecimal 86
symbol ANSEL = $9B 'Analogue select port
Symbol ADCON0 = $1F 'Analogue control port 0
Symbol ADCON1 = $9F 'Analogue control port 1
symbol ADRESH = $1E 'Analogue result register high
Symbol ADRESL = $9E 'Analogue result register low
poke ANSEL , $F
poke ADCON0 , $80
poke ADCON1 , $80
Poke TrisB , 0
B5 = 1
start: poke ADCON0 , $91
pause 1
poke ADCON0 , $95
pause 5
peek ADRESH,B0
Peek ADRESL,B1
W6 = W0
W0 = W0 - 50
peek PortB, B2
B3 = B2 & 1
B4 = B2 & 2
if B3 = 1 then beep
if B4 = 2 then delay
goto start
delay: B5 = B5 + 2
high 4
pause 1000
low 4
pause 1000
high 4
pause 1000
low 4
B4 = 0
goto start
beep: high 4
pause 5000
low 4
goto armed
armed: poke ADCON0 , $89
pause 1
poke ADCON0 , $8D
pause 5
peek ADRESH,B6
Peek ADRESL,B7
if W3 < 300 then machdelay
goto armed
machdelay: for B8 = 1 to B5
pause 5000
next B8
goto launched
launched: poke ADCON0 , $91
pause 1
poke ADCON0 , $95
pause 5
peek ADRESH,B6
Peek ADRESL,B7
W6 = W6 + 10
if W3 < W6 then apogee
W6 = W3
goto launched
apogee: high 4
pause 5000
low 4
high 2
pause 5000
low 2
goto falling
falling: poke ADCON0 , $91
pause 1
poke ADCON0 , $95
pause 5
peek ADRESH,B6
Peek ADRESL,B7
if W3 > W0 then main
goto falling
main: high 4
pause 5000
low 4
high 3
pause 5000
low 3
end
Actually just looking back over what I posted, I poke portB to all outputs at the start, could this be causing the problems I'm seeing?
Bookmarks