Code:
'****************************************************************
'* Name : GALAXYFINALBUILD.BAS *
'* Author : After 9 wks, Who the hell cares? *
'* Notice : Copyright (c) 2014 *
'* : You have the right to STFU! *
'* Date : 6/7/2014 *
'* Version : 43046721.11 *
'* Notes : "Remember to fill the gas can in case it fails *
'* : while showing boss how to operate..." *
'****************************************************************
#CONFIG
__config _CONFIG1, _FOSC_HS & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF
__config _CONFIG2, _PLLEN_OFF & _LVP_OFF
#ENDCONFIG
DEFINE OSC 20
ANSELA = 0
ANSELB = 0
INTCON.7 = 1
INTCON.4 = 1
OPTION_REG.6 = 1
LED var PORTC.7
TRISC.7 = 0
LED = 0
DOWN var PORTB.4
TRISB.4 = 0
DOWN = 0
EAST var PORTB.5
TRISB.5 = 0
EAST = 0
WEST var PORTB.6
TRISB.6 = 0
WEST = 0
RX var PORTC.4
TRISC.4 = 1
TX var PORTC.1
TRISC.1 = 0
UP var PORTB.7
TRISB.7 = 0
UP = 0
a0 var byte
a1 var byte
i var byte
VerboseMode var byte
cereal var byte
Aencoder0Pos var word
Eencoder0Pos var word
ON INTERRUPT GOTO DoEncoder
VerboseMode = 1
goto MainMenu
DISABLE
doEncoder:
if UP = 1 then
Eencoder0Pos = Eencoder0Pos + 1
if VerboseMode = 1 then serout TX, 2, ["Eencoder0Pos = ", #Eencoder0Pos, 13, 10]
endif
if DOWN = 1 then
Eencoder0Pos = Eencoder0Pos - 1
if VerboseMode = 1 then serout TX, 2, ["Eencoder0Pos = ", #Eencoder0Pos, 13, 10]
endif
if EAST = 1 then
if a0 = 5 then
Aencoder0Pos = Aencoder0Pos + 1
A0 = 0
if VerboseMode = 1 then serout TX, 2, ["Aencoder0Pos = ", #Aencoder0Pos, 13, 10]
endif
a0 = a0 + 1
endif
if WEST = 1 then
if a1 = 5 then
Aencoder0Pos = Aencoder0Pos - 1
a1 = 0
if VerboseMode = 1 then serout TX, 2, ["Aencoder0Pos = ", #Aencoder0Pos, 13, 10]
endif
a1 = a1 + 1
endif
RESUME
ENABLE
MainMenu:
gosub CLR
serout TX, 2, ["******** MAIN MENU ********", 13, 10, 10]
serout TX, 2, [" 1. Start Homing Sequence", 13, 10]
serout TX, 2, [" 2. Manual JOG Mode", 13, 10]
serout TX, 2, [" 3. Auto-Acquire Satellite", 13, 10]
serout TX, 2, [" 4. Stow Dish for Travel", 13, 10, 10]
serout TX, 2, ["Enter Your Selection:"]
serin RX, 2, cereal
if VerboseMode = 1 then serout tx, 2, [#cereal,13,10]
' If cereal = "1" then goto HomeDish
If cereal = "2" then goto JogMenu
' If cereal = "3" then goto TEST1
' If cereal = "4" then goto Startup
goto MainMenu
JogMenu:
gosub CLR
pause 250
serout TX, 2, ["***** JOG MENU *****", 13, 10, 10]
serout TX, 2, ["U - UP", 13, 10]
serout TX, 2, ["D - DOWN", 13, 10]
serout TX, 2, ["E - EAST", 13, 10]
serout TX, 2, ["W - WEST", 13, 10]
serout TX, 2, ["S - ALL STOP", 13, 10]
serout TX, 2, ["X - MAIN MENU", 13, 10, 10]
serin RX, 2, cereal
if cereal = "U" Then
gosub allSTOP
HIGH UP
endif
if cereal = "D" then
gosub allSTOP
HIGH DOWN
endif
if cereal = "E" then
gosub allSTOP
high EAST
endif
if cereal = "W" then
gosub allSTOP
HIGH WEST
endif
if cereal = "S" then gosub allSTOP
if cereal = "X" then
gosub allSTOP
goto MainMenu
endif
goto JOGMenu
allSTOP:
EAST = 0
UP = 0
DOWN = 0
WEST = 0
if VerboseMode = 1 then GOSUB POS
return
CLR:
if VerboseMode = 0 then
For i = 0 to 30
serout TX, 2, [10]
next i
endif
return
abort:
gosub allSTOP
gosub clr
serout TX, 2, ["USER STOP! -- MOVE ABORTED!", 13, 10]
PAUSE(5000)
goto MainMenu
moveerror:
gosub allSTOP
gosub clr
serout TX, 2, ["SYSTEM ERROR! -- MOVE ABORTED!", 13, 10]
PAUSE(5000)
goto MainMenu
POS:
pause 100
serout TX, 2, [" EL -- ", #Eencoder0Pos, " AZ -- ", #Aencoder0Pos, 13, 10]
pause 2000
return
Bookmarks