Code:
' STATUS: Works OK!
'< FL_PIC16F886 >' ' First valid PIC found within the first 200 lines will
' highlight AND set device.
'< FL_PBPW >' ' OR < FL_PBPL >
'< FL_MPASM >' ' OR < FL_PM >
' Set configuration fuses for the MCU
' To use standard config include file, comment out below statement
@ __config _CONFIG1, _HS_OSC & _WDT_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF
ASM
ERRORLEVEL -306
ENDASM
DEFINE OSC 8
ADCON1 = %00001110
TRISC.1 = 0 ' Make pin output for MSEL
TRISC.2 = 0 ' Make pin output for _RES_PD
' Define variables and aliases
CNT VAR BYTE
CNT = 0
temp VAR BYTE 'Already declared in main program as temp
D_LAY VAR BYTE
ADR VAR BYTE [9]
MSEL VAR PORTC.1 ' iChip Mode Select (MSEL)
_RES_PD VAR PORTC.2 ' iCHIP RESET/Power-Down (_RES_PD)
TX VAR PORTC.6
RX VAR PORTC.7
PAUSE 2000
'Initialize iWiFi MiniSocket Module
HIGH _RES_PD ' Set high for normal ops
PAUSE 500 ' Delay to stabilize coming out of power down mode
LOW MSEL ' Exit SERIALNET mode and return iChip to normal AT+i mode
PAUSE 10000 ' Delay 10 sec
HIGH MSEL ' Proceed with normal AT+i command ops
PAUSE 2000 ' Delay 2 sec
BOOT: 'iCHIP SET UP
HIGH PORTC.4 :PAUSE 500 ' Short Blink the LED_RED as heart beat
LOW PORTC.4: PAUSE 500 ' while disconnected from router.
WRITE 3,3 'EEPROM test to see if program executes to here..it does.
SEROUT2 TX,84,["AT+iBDRA",$d,$a] ' FORCE ICHIP TO AUTO BAUD
WRITE 4,4 'EEPROM test to see if program executes to here..it does.
SERIN2 RX ,84,2500,BOOT,[WAIT("I/OK")] ' SETTING BAUD TO 9600
PAUSE 100
WRITE 5,5 'EEPROM test to see if program executes to here..it does!
SEROUT2 TX,84,["AT+iRPG=booger",$d ,$a] ' SETS REMOTE PASSWORD
SERIN2 RX ,84,2500,BOOT,[WAIT("I/OK")]
PAUSE 100
'SEROUT2 TX,84,["AT+iWSEC=0",$d ,$a] ' WPA-TKIP PROTOCAL
' Commented out until WPA setup on wireless router
'SERIN2 RX ,84,2500,BOOT,[WAIT("I/OK")]
PAUSE 100
SEROUT2 TX,84,["AT+iWLSI=Buckskin",$d,$a]' SET SSID WE ARE LOOKING FOR
SERIN2 RX ,84,2500,BOOT,[WAIT("I/OK")] '
PAUSE 100
'SEROUT2 TX,84,["AT+iWLPP=macmac3X3",$d,$a]' SET PASS-PHRASE
' Commented out until WPA setup on wireless router
'SERIN2 RX ,84,2500,BOOT,[WAIT("I/OK")]
PAUSE 100
SEROUT2 TX,84,["AT+i!RP10",$d,$a] ' REPORTS CONNECTION PARAMETERS
SERIN2 RX ,84,2500,BOOT,[WAIT("I/OK")] ' FOR DEBUGGING
PAUSE 100
SEROUT2 TX ,84,[ "AT+iIPA?" , $d , $a ] ' RETURNS IP ADDRESS
' FOR DEBUGGING
SERIN2 RX ,84 , 2500 ,BOOT , [ DEC ADR[0] , DEC ADR[1] , DEC ADR[2] , DEC ADR[3] ]
PAUSE 100
WRITE 16,ADR[0] ' Write the IP to EEPROM for post run identify
WRITE 17,ADR[1]
WRITE 18,ADR[2]
WRITE 19,ADR[3]
WRITE 6,6 'EEPROM test to see if program executes to here..it does!
SEROUT2 TX,84,["AT+iWWW",$d,$a] ' STARTS WEB SERVER
SERIN2 RX,84,1000,BOOT,[WAIT("I/(")]
PAUSE 100
GOSUB Blink ' IF WE GET HERE BLINK LED_GRN
PAUSE 100
GOTO BOOT
Blink:
HIGH PORTC.5 :PAUSE 500 ' Short Blink the LED_GRN..IT DOES AFTER ~2 minutes!
LOW PORTC.5: PAUSE 500
RETURN
Bookmarks