PDA

View Full Version : 18F26K22 slow startup



Tobias
- 7th January 2014, 22:10
When I program the code, LCD toggle's right away. If I cycle power, LCD takes forever to toggle. Any ideas? Internal OSC.


#CONFIG
CONFIG FOSC = INTIO67
CONFIG PLLCFG = ON
CONFIG PRICLKEN = OFF
CONFIG FCMEN = ON
CONFIG IESO = OFF
CONFIG PWRTEN = ON
CONFIG BOREN = OFF
CONFIG WDTEN = OFF
CONFIG CCP2MX = PORTC1
CONFIG PBADEN = OFF
CONFIG MCLRE = INTMCLR
CONFIG STVREN = ON
CONFIG LVP = OFF
CONFIG XINST = OFF
CONFIG DEBUG = OFF
#ENDCONFIG

DEFINE OSC 32
OSCCON = %01100000
OSCTUNE = %01000000'01000000
@ ERRORLEVEL -306 ; turn off crossing page boundary message
'Include "modedefs.bas" ' Mode definitions for Serou


Baud var PortA.2 'Output Set Baud rate (high = force 9,600, low = 115 K or firmware setting)
Master var PortA.3 'Output high=automaster-mode Input to RN-42 with weak pulldown
TRISA=%010001

DEFINE DEBUG_REG PORTB ' Set Debug pin port
DEFINE DEBUG_BIT 6 ' Set Debug pin bit
DEFINE DEBUG_BAUD 57600 ' Set Debug baud rate
DEFINE DEBUG_MODE 0 ' Set Debug mode: 0 = true, 1 = inverted
DEFINE DEBUG_PACING 200'200

DEFINE DEBUGIN_REG PORTB ' Set Debugin pin port
dEFINE DEBUGIN_BIT 7 ' Set Debugin pin bit
DEFINE DEBUGIN_MODE 0 ' Set Debugin mode: 0 = true, 1 = inverted

DEFINE HSER2_RCSTA 90h
DEFINE HSER2_TXSTA 20h
DEFINE HSER2_BAUD 57600

DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 20h
DEFINE HSER_BAUD 9600

LiftSwitch var PortB.0 'When low, shut off rows.
STS var PortB.1 'Input Status, high when connected, low otherwise
Discover var PortB.2 'Output Auto discovery = high
Test var PortB.3
Defaults var PortB.4 'Output Set factory defaults Input to RN-42 with weak pulldown
LCD Var PortB.5
BTX var PortB.6 'Wireless transmit
BRX var PortB.7 'Wireless receive
TRISB=%10000011
ADCON1.7=1
ADCON1.6=1
ADCON1.5=0
ADCON1.4=0
ADCON1.3=0
ADCON1.2=1
ADCON1.0=1

WRX var PortC.0 'Input
RadarIn var PortC.1 'Input
Config1 var PortC.2 'Input
Config2 var PortC.3 'Input
'NC PortC.4
CTS var PortC.5 'Output
WTX var PortC.6 'Output
GRX var PortC.7 'Input
TRISC=%10001111

GPGGA VAR BYTE[64]
Blue var byte[64]
RadarLow Var Word
RadarHigh var Word
RadarTotal var word
qI VAR Word 'Quotient-integer------------------Maybe change to Byte
qF VAR Word 'Quotient-fractional
GSpeed var word
Res var WOrd
hh VAR BYTE 'hours
mm VAR BYTE 'minutes
ss VAR BYTE 'seconds
sss var word 'milliseconds
fix VAR WORD 'GPS fix
latdeg VAR word 'degrees latitude
latmin VAR byte 'minutes latitude
latmin2 var word 'fractional minutes latitude
totallat var long
NS VAR BYTE 'north or south
londeg VAR word 'degrees longitude
lonmin VAR byte 'minutes longitude
lonmin2 var long 'fractional minutes longitude
totallon var WORD 'long
EW VAR BYTE 'east or west
Knots VAR byte 'speed in knots (units)
Knotss var byte 'speed in fractional knots
course var word 'heading
dy VAR BYTE 'day
mt VAR BYTE 'month
yr VAR BYTE 'year
quality var byte
satnum var byte
geoid var word
geoiddec var byte
dummy var byte
altitude var word
altitudedec var byte
altunit var byte
CBID var byte
CBCount var byte
RPM1X var word
RPM2X var word
RPM3X var word
RPM4X var word
RPM1R var word
RPM2R var word
RPM3R var word
RPM4R var word
RPM5R var word
RPM6R var word
RPM7R var word
RPM8R var word
RPM9R var word
RPM10R var word
RPM11R var word
RPM12R var word
RPM13R var word
RPM14R var word
RPM15R var word
RPM16R var word
RPM17R var word
RPM18R var word
RPM19R var word
RPM20R var word
RPM21R var word
RPM22R var word
RPM23R var word
RPM24R var word
RPM25R var word
RPM26R var word
RPM27R var word
RPM28R var word
RPM29R var word
RPM30R var word
RPM31R var word
RPM32R var word
RPM33R var word
RPM34R var word
RPM35R var word
RPM36R var word
RPM37R var word
RPM38R var word
RPM39R var word
RPM40R var word
RPM41R var word
RPM42R var word
RPM43R var word
RPM44R var word
RPM45R var word
RPM46R var word
RPM47R var word
RPM48R var word

RPM1T var word
RPM2T var word
RPM3T var word
RPM4T var word
RPM5T var word
RPM6T var word
RPM7T var word
RPM8T var word
RPM9T var word
RPM10T var word
RPM11T var word
RPM12T var word
RPM13T var word
RPM14T var word
RPM15T var word
RPM16T var word
RPM17T var word
RPM18T var word
RPM19T var word
RPM20T var word
RPM21T var word
RPM22T var word
RPM23T var word
RPM24T var word
RPM25T var word
RPM26T var word
RPM27T var word
RPM28T var word
RPM29T var word
RPM30T var word
RPM31T var word
RPM32T var word
RPM33T var word
RPM34T var word
RPM35T var word
RPM36T var word
RPM37T var word
RPM38T var word
RPM39T var word
RPM40T var word
RPM41T var word
RPM42T var word
RPM43T var word
RPM44T var word
RPM45T var word
RPM46T var word
RPM47T var word
RPM48T var word
RPM1O var word
RPM2O var word
RPM3O var word
RPM4O var word
RPM5O var word
RPM6O var word
RPM7O var word
RPM8O var word
RPM9O var word
RPM10O var word
RPM11O var word
RPM12O var word
RPM13O var word
RPM14O var word
RPM15O var word
RPM16O var word
RPM17O var word
RPM18O var word
RPM19O var word
RPM20O var word
RPM21O var word
RPM22O var word
RPM23O var word
RPM24O var word
RPM25O var word
RPM26O var word
RPM27O var word
RPM28O var word
RPM29O var word
RPM30O var word
RPM31O var word
RPM32O var word
RPM33O var word
RPM34O var word
RPM35O var word
RPM36O var word
RPM37O var word
RPM38O var word
RPM39O var word
RPM40O var word
RPM41O var word
RPM42O var word
RPM43O var word
RPM44O var word
RPM45O var word
RPM46O var word
RPM47O var word
RPM48O var word
TXID var byte
EPDCount var byte
BTPrefix var Long
SimYN var byte
T1 var word 'Used to measure RPM
T2 var word 'Used to measure RPM
T3 var word 'Used to measure RPM
Prefix con $FE ' needed before each command
LcdCls CON $51 ' clear LCD (use PAUSE 5 after)
CursorPS con $45 'Cursor Position
Backlight con $53 ' Backlighting 1-8
Contrast con $52 ' Contrast 1-50
Shit var byte
BTArray var byte[4]
Prefix1 var byte
Prefix2 var byte
Prefix3 var byte
Prefix4 var byte
RFCheck var bit

ADCON0.0=0
ADCON1=%00001111
Symbol Capture = PIR2.0 ' CCP2 capture flag
Symbol Overflow = PIR1.0
INTCON.7 = 1
INTCON.6 = 1
CCP2CON = %00000101 ' Capture mode, capture on rising edge
T1CON = %00110011 ' TMR1 prescale=1, clock=Fosc/4, TMR1=on
ANSELA=%00000000
ANSELB=%00000000
ANSELC=%00000000

Low Discover
high lcd
low Baud
Low Master
Low CTS

pause 200
'GOSUB INITIALIZE
'gosub Send_BT
do until STS=1
'gosub RFOOff
pause 50
toggle lcd
loop
'GOSUB INITIALIZE
pause 100

CCPTMRS0.4=0 'CCP2 uses Timer1
CCPTMRS0.3=0 'CCP2 uses Timer1
PIE2.0=1 'CCPIE Enabled
IPR2.0=0 'Low PRiority Interrupt