; *******************************
; ***** Sample Header File *****
; *******************************
; Filename: tailwag2
; Date:
; File Version: 5
; Written by: DJB
; Function: Animatronic Tail Wagger
; Last Revision:
; Target PICAXE:
; *******************************
symbol listen = 3
symbol servoV = 1
symbol servoH = 4
symbol vhappy = 200
symbol vsad = 80
symbol hdrop = 150
symbol vdrop = 150
symbol hright = 200
symbol hleft = 80
setint %00001000, %00001000
' initalise loop
b6 =0
start:
b3 = 0
branch b6,(wag0,wag1,wag2,wag3,wag4,wag5)
'-----------------------------------------
wag0:
servopos servoh, hdrop
servopos servov, vdrop
pause 250
high servoH
high servoV
wag01:
pause 250
if b3=1 then
servo servoH, hdrop
servo servoV, vdrop
goto start
end if
goto wag01:
wag1:
b4 = 170
b5 = 90
b6 = 8
gosub swing
if b3=1 then goto start
goto wag1:
'-----------------------------------------
wag2:
b4 = 170
b5 = 90
b6 = 6
gosub swing
if b3=1 then goto start
goto wag2:
'-----------------------------------------
wag3:
' sertxd("Wag3",13,10)
pause 250
servopos servoV, vhappy
servopos servoH, hdrop
if b3=1 then goto start
goto wag3
'-----------------------------------------
wag4:
'sertxd("Wag4",13,10)
pause 250
servopos servoV, vsad
servopos servoH, hdrop
if b3=1 then goto start
goto wag4
'-----------------------------------------
wag5:
servopos servoH,hdrop
servopos servoV,vdrop
pause 1000
readadc10 2,w4
pause 500
servo servoV, vhappy
wag51:
pause 100
readadc10 2,w5
if b3=1 then goto start
b0 = 0
w3 = w4 - w5
If w3 > 10000 then
w3 = w5 - w4
b0 = 1 ' negative flag
end if
If w3 < 5 then goto wag51
If w3 > 50 then
w3 = 50
end if
If b0 = 1 then
w5 = 150 - w3
else
w5 = 150 + w3
end if
' sertxd(#w5,13,10)
servo servoH,w5
goto wag51
'-----------------------------------------
swing:
servopos servoV,vhappy
swing1:
pause b6
for b1 = b5 to b4 step 1
servopos servoH,b1
if b3=1 then
return
end if
pause b6
next
pause b6
for b1 = b4 to b5 step -1
servopos servoH,b1
if b3=1 then
return
end if
pause b6
next
goto swing1
'-----------------------------------------
interrupt:
serin listen,t2400, b5,b6
setint %00001000, %00001000
If b5 = 1 then
b3 = 1
end if
return