Code:
'Program Memory Bytes Used: 16372 of 32767
'Revision Date: 14 April 2014
'Written for PICBASIC PRO Compiler version 3.0.7
'Processor=PIC18F2550 20MHz Oscillator
DEFINE LCD_EREG PORTA
DEFINE LCD_EBIT 4
DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 5
DEFINE LCD_DATAUS 100
DEFINE NO_CLRWDT 1
DEFINE OSC 20 '
INCLUDE "con_vars.inc" 'constant and variable definitions
'*************************************************************
'*************************************************************
'******************** PIN ASSIGNMENTS ************************
'*************************************************************
'*************************************************************
'------------------ PORT B PIN ASSIGNMENTS -------------------
Symbol ir_in = PORTB.0 'IR receiver data input
Symbol sclk = PORTB.1 'isd_spi_clock
Symbol mosi = PORTB.2 'isd_spi_out
Symbol backlight = PORTB.3 'backlight
Symbol modesel = PORTB.4 'mode button
Symbol reload = PORTB.5 'reload button
Symbol hitled = PORTB.6 'sensor LED
Symbol trigger = PORTB.7 'trigger button
'------------------ PORT C PIN ASSIGNMENTS -------------------
Symbol ir_power = PORTC.0 'ir_power
Symbol muzzle2 = PORTC.1 'muzzle 2
Symbol mod_out = PORTC.2 'mod_out
'Symbol not_used = PORTC.3 'USB Vreg Capacitor
'Symbol not_used = PORTC.4 'USB D-
'Symbol not_used = PORTC.5 'USB D+
Symbol muzzle = PORTC.6 'muzzle 1
Symbol ss = PORTC.7 'isd_spi_slave_select
'------------------ PORT E PIN ASSIGNMENTS -------------------
Symbol sw4 = PORTE.3 'Input Only
'*************************************************************
'*************************************************************
'******************** INITIALIZATION *************************
'*************************************************************
'*************************************************************
initialize:
CLEAR 'initialize RAM
ADCON0 = 1 'AD on, CH0
ADCON1 = 15 'all pins are digital
ADCON2 = %00111111 'left justified result, max times
CMCON = 7 'turn off comparators
Poke $81,$FF 'turn off PORT B weak pull ups
RCSTA = 0 'disable serial port
'------------------------- TIMER 0 --------------------------
'Timer 0 is used for Input Pulse Measurement
TMR0L = 0 'clear Timer 0 low byte
T0CON = %11000101 'prescale = /64
INTCON.5 = 0 'disable TMR0 interrupt
'------------------------- TIMER 1 --------------------------
'Timer 1 is for Elapsed Time
TMR1H = 0 'clear Timer 1 high byte
TMR1L = 0 'clear Timer 1 low byte
T1CON = 49 'turn Timer 1 on ; prescale = 1:8
PIE1.0 = 0 'enable Timer 1 interrupt flag
PIR1.0 = 0 'clear overflow flag
'------------------------- TIMER 2 --------------------------
'Timer 2 is used for PWM module(s)
T2CON = 4 'Timer2 = ON; Prescale = 1:1
CCP1CON = 0 'PWM module off
'------------------------------------------------------------
TRISA = %00000000 'set PortA directions (0=Output, 1=Input)
TRISB = %10110001 'set PortB directions
TRISC = %00000000 'set PortC directions
PORTB = %00000010
PORTC = %10000000
pause 200
'****************************************************************
'****************************************************************
bootload_access: 'Trace Systems PIC18F Bootloader
IF trigger = 0 then 'bootloader access key, only on power up
LCDOut $FE, 1 'clear LCD
LCDOut $FE,$80," BOOT "
LCDOut $FE,$C0," LOADER "
pause 1000
@ goto 0x6200 'bootloader start address
EndIf
'****************************************************************
'****************************************************************
startup_screen:
LCDOut $FE, 1 'clear LCD
LCDOut $FE,$80,"JumpFail"
LCDOut $FE,$C0,"TestCode"
PAUSE 1000
'****************************************************************
'****************************************************************
start:
LCDOut $FE, 1 'clear LCD
LCDOut $FE,$80,"Waiting"
LCDOut $FE,$C0,"Trigger"
test_loop:
pause 100
if trigger = 0 then
gosub test_sub
endif
pause 100
goto test_loop
'****************************************************************
'****************************************************************
filler_code:
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ" 'works to here
LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ" 'FAILED HERE IF LINE UNCOMMENTED
' LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
' LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
' LCDOut $FE,$C0,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
'****************************************************************
'****************************************************************
test_sub:
LCDOut $FE, 1 'clear LCD
LCDOut $FE,$80,"Got Here"
LCDOut $FE,$C0,"Test Sub"
pause 200
high hitled
pause 500
low hitled
return
'****************************************************************
'****************************************************************
End
Bookmarks