/PIC Stuff/PICX_16F1829_BLE_IMU/I2C.h |
---|
File deleted |
/PIC Stuff/PICX_16F1829_BLE_IMU/TIMER.h |
---|
File deleted |
/PIC Stuff/PICX_16F1829_BLE_IMU/INTERRUPT.c |
---|
File deleted |
\ No newline at end of file |
/PIC Stuff/PICX_16F1829_BLE_IMU/UART.h |
---|
File deleted |
/PIC Stuff/PICX_16F1829_BLE_IMU/main.h |
---|
File deleted |
/PIC Stuff/PICX_16F1829_BLE_IMU/INTERRUPT.h |
---|
File deleted |
/PIC Stuff/PICX_16F1829_BLE_IMU/I2C.c |
---|
File deleted |
\ No newline at end of file |
/PIC Stuff/PICX_16F1829_BLE_IMU/TIMER.c |
---|
File deleted |
/PIC Stuff/PICX_16F1829_BLE_IMU/UART.c |
---|
File deleted |
\ No newline at end of file |
/PIC Stuff/PICX_16F1829_BLE_IMU/funclist |
---|
1,29 → 1,3 |
_I2C_Get_Status: CODE, 3846 0 83 |
_I2C_Interrupt_Master: CODE, 64 0 741 |
__stringtab: STRING, 2048 0 1 |
_I2C_Read_Buffer: CODE, 3768 0 78 |
__stringdata: STRING, 2049 0 27 |
_INTERRUPT_Init: CODE, 3218 0 3 |
_UART_Read: CODE, 4012 0 84 |
_I2C_Interrupt_Slave: CODE, 805 0 571 |
_INTERRUPT_Handler: CODE, 4 0 58 |
_I2C_Configure_Master: CODE, 3316 0 38 |
_I2C_Master_Send: CODE, 1957 0 91 |
_UART_Init: CODE, 3354 0 52 |
_main: CODE, 3406 0 53 |
_Error: CODE, 3570 0 64 |
_TIMER_1_Init: CODE, 3245 0 18 |
_I2C_Process_Send: CODE, 3634 0 66 |
_TIMER_1_Start: CODE, 3215 0 3 |
_I2C_Interrupt_Handler: CODE, 3282 0 34 |
_UART_TX_Interrupt_Handler: CODE, 3513 0 57 |
__initialization: CODE, 3263 0 16 |
_I2C_Master_Restart: CODE, 3929 0 83 |
_I2C_Init: CODE, 1862 0 95 |
_UART_RX_Interrupt_Handler: CODE, 1765 0 97 |
_Startup_Check: CODE, 1376 0 389 |
_UART_Write: CODE, 3459 0 54 |
_TIMER_1_Interrupt_Handler: CODE, 3227 0 18 |
_memcmp: CODE, 3700 0 68 |
_INTERRUPT_Enable: CODE, 2 0 2 |
Total: 2944 |
_main: CODE, 2045 0 3 |
__initialization: CODE, 2042 0 0 |
Total: 3 |
/PIC Stuff/PICX_16F1829_BLE_IMU/main.c |
---|
1,12 → 1,5 |
#include <xc.h> |
#include <string.h> |
#include "main.h" |
#include "TIMER.h" |
#include "INTERRUPT.h" |
#include "UART.h" |
#include "I2C.h" |
// <editor-fold defaultstate="collapsed" desc="Configuration Bits"> |
// CONFIG1 |
#pragma config FOSC = INTOSC // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin) |
#pragma config WDTE = OFF // Watchdog Timer Enable (WDT disabled) |
21,132 → 14,12 |
// CONFIG2 |
#pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off) |
#pragma config PLLEN = ON // PLL Enable (4x PLL disabled) |
#pragma config PLLEN = ON // PLL Enable (4x PLL enabled) |
#pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset) |
#pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.) |
#pragma config LVP = OFF // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming) |
// </editor-fold> |
#pragma config LVP = ON // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming) |
UART_DATA uart_data; |
I2C_DATA i2c_data; |
void Error(char ID) { |
while(1) { |
for (char i = 0; i < ID; i++) { |
LED_LAT = 1; |
__delay_ms(120); |
LED_LAT = 0; |
__delay_ms(150); |
} |
__delay_ms(1000); |
} |
} |
void Startup_Check(void) { |
char buffer[20]; |
char result, length; |
BLE_RESET_LAT = 0; |
__delay_ms(3000); |
BLE_RESET_LAT = 1; |
__delay_ms(200); |
// Check BLE Module |
length = UART_Read(buffer); |
if (memcmp(buffer, "\r\nBR-LE4.0-S2\r\n", 15)) { |
Error(1); |
} |
UART_Write("AT\r", 3); |
__delay_ms(10); |
length = UART_Read(buffer); |
if (memcmp(buffer, "\r\nOK\r\n", 6)) { |
Error(1); |
} |
// Check Battery Gauge |
I2C_Master_Restart(ADDRESS_LIPO, 0x0C, 2); |
do { |
result = I2C_Get_Status(); |
} while (!result); |
if ((result != I2C_SEND_OK) && (result != I2C_RECV_OK)) { |
Error(2); |
} |
length = I2C_Read_Buffer(buffer); |
if ((buffer[0] != 0x97) || (buffer[1] != 0x00) || (length != 2)) { |
Error(2); |
} |
// Check Gyroscope |
I2C_Master_Restart(ADDRESS_GYRO, 0x0F, 1); |
do { |
result = I2C_Get_Status(); |
} while (!result); |
if ((result != I2C_SEND_OK) && (result != I2C_RECV_OK)) { |
Error(3); |
} |
length = I2C_Read_Buffer(buffer); |
if ((buffer[0] != 0xD4) || (length != 1)) { |
Error(3); |
} |
// Check Accelerometer |
I2C_Master_Restart(ADDRESS_ACCL, 0x20, 1); |
do { |
result = I2C_Get_Status(); |
} while (!result); |
if ((result != I2C_SEND_OK) && (result != I2C_RECV_OK)) { |
Error(4); |
} |
length = I2C_Read_Buffer(buffer); |
if ((buffer[0] != 0x07) || (length != 1)) { |
Error(4); |
} |
// Check Magnometer |
I2C_Master_Restart(ADDRESS_MAGN, 0x0A, 1); |
do { |
result = I2C_Get_Status(); |
} while (!result); |
if ((result != I2C_SEND_OK) && (result != I2C_RECV_OK)) { |
Error(4); |
} |
length = I2C_Read_Buffer(buffer); |
if ((buffer[0] != 0x48) || (length != 1)) { |
Error(4); |
} |
} |
int main() { |
OSCCON = 0x70; // PLL disabled, 8MHz |
ANSELA = 0; |
ANSELB = 0; |
ANSELC = 0; |
LED_TRIS = 0; |
LED_LAT = 0; |
BLE_RESET_TRIS = 0; |
BLE_RESET_LAT = 0; |
BLE_SLEEP_TRIS = 0; |
BLE_SLEEP_LAT = 0; |
BLE_MODE_TRIS = 0; |
BLE_MODE_LAT = 0; |
TIMER_1_Init(); |
UART_Init(&uart_data); |
I2C_Init(&i2c_data); |
INTERRUPT_Init(); |
I2C_Configure_Master(I2C_100KHZ); |
INTERRUPT_Enable(); |
Startup_Check(); |
TIMER_1_Start(); |
while(1); |
} |
/PIC Stuff/PICX_16F1829_BLE_IMU/nbproject/Makefile-default.mk |
---|
45,11 → 45,11 |
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE} |
# Object Files Quoted if spaced |
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/main.p1 ${OBJECTDIR}/TIMER.p1 ${OBJECTDIR}/INTERRUPT.p1 ${OBJECTDIR}/UART.p1 ${OBJECTDIR}/I2C.p1 |
POSSIBLE_DEPFILES=${OBJECTDIR}/main.p1.d ${OBJECTDIR}/TIMER.p1.d ${OBJECTDIR}/INTERRUPT.p1.d ${OBJECTDIR}/UART.p1.d ${OBJECTDIR}/I2C.p1.d |
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/main.p1 |
POSSIBLE_DEPFILES=${OBJECTDIR}/main.p1.d |
# Object Files |
OBJECTFILES=${OBJECTDIR}/main.p1 ${OBJECTDIR}/TIMER.p1 ${OBJECTDIR}/INTERRUPT.p1 ${OBJECTDIR}/UART.p1 ${OBJECTDIR}/I2C.p1 |
OBJECTFILES=${OBJECTDIR}/main.p1 |
CFLAGS= |
79,34 → 79,6 |
@-${MV} ${OBJECTDIR}/main.d ${OBJECTDIR}/main.p1.d |
@${FIXDEPS} ${OBJECTDIR}/main.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
${OBJECTDIR}/TIMER.p1: TIMER.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/TIMER.p1.d |
${MP_CC} --pass1 $(MP_EXTRA_CC_PRE) --chip=$(MP_PROCESSOR_OPTION) -Q -G --asmlist -D__DEBUG=1 --debugger=pickit3 --double=24 --float=24 --opt=default,+asm,-asmfile,+speed,-space,-debug,9 --addrqual=ignore --mode=free -P -N255 --warn=0 --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib "--errformat=%%f:%%l: error: %%s" "--warnformat=%%f:%%l: warning: %%s" "--msgformat=%%f:%%l: advisory: %%s" -o${OBJECTDIR}/TIMER.p1 TIMER.c |
@-${MV} ${OBJECTDIR}/TIMER.d ${OBJECTDIR}/TIMER.p1.d |
@${FIXDEPS} ${OBJECTDIR}/TIMER.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
${OBJECTDIR}/INTERRUPT.p1: INTERRUPT.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/INTERRUPT.p1.d |
${MP_CC} --pass1 $(MP_EXTRA_CC_PRE) --chip=$(MP_PROCESSOR_OPTION) -Q -G --asmlist -D__DEBUG=1 --debugger=pickit3 --double=24 --float=24 --opt=default,+asm,-asmfile,+speed,-space,-debug,9 --addrqual=ignore --mode=free -P -N255 --warn=0 --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib "--errformat=%%f:%%l: error: %%s" "--warnformat=%%f:%%l: warning: %%s" "--msgformat=%%f:%%l: advisory: %%s" -o${OBJECTDIR}/INTERRUPT.p1 INTERRUPT.c |
@-${MV} ${OBJECTDIR}/INTERRUPT.d ${OBJECTDIR}/INTERRUPT.p1.d |
@${FIXDEPS} ${OBJECTDIR}/INTERRUPT.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
${OBJECTDIR}/UART.p1: UART.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/UART.p1.d |
${MP_CC} --pass1 $(MP_EXTRA_CC_PRE) --chip=$(MP_PROCESSOR_OPTION) -Q -G --asmlist -D__DEBUG=1 --debugger=pickit3 --double=24 --float=24 --opt=default,+asm,-asmfile,+speed,-space,-debug,9 --addrqual=ignore --mode=free -P -N255 --warn=0 --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib "--errformat=%%f:%%l: error: %%s" "--warnformat=%%f:%%l: warning: %%s" "--msgformat=%%f:%%l: advisory: %%s" -o${OBJECTDIR}/UART.p1 UART.c |
@-${MV} ${OBJECTDIR}/UART.d ${OBJECTDIR}/UART.p1.d |
@${FIXDEPS} ${OBJECTDIR}/UART.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
${OBJECTDIR}/I2C.p1: I2C.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/I2C.p1.d |
${MP_CC} --pass1 $(MP_EXTRA_CC_PRE) --chip=$(MP_PROCESSOR_OPTION) -Q -G --asmlist -D__DEBUG=1 --debugger=pickit3 --double=24 --float=24 --opt=default,+asm,-asmfile,+speed,-space,-debug,9 --addrqual=ignore --mode=free -P -N255 --warn=0 --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib "--errformat=%%f:%%l: error: %%s" "--warnformat=%%f:%%l: warning: %%s" "--msgformat=%%f:%%l: advisory: %%s" -o${OBJECTDIR}/I2C.p1 I2C.c |
@-${MV} ${OBJECTDIR}/I2C.d ${OBJECTDIR}/I2C.p1.d |
@${FIXDEPS} ${OBJECTDIR}/I2C.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
else |
${OBJECTDIR}/main.p1: main.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
115,34 → 87,6 |
@-${MV} ${OBJECTDIR}/main.d ${OBJECTDIR}/main.p1.d |
@${FIXDEPS} ${OBJECTDIR}/main.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
${OBJECTDIR}/TIMER.p1: TIMER.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/TIMER.p1.d |
${MP_CC} --pass1 $(MP_EXTRA_CC_PRE) --chip=$(MP_PROCESSOR_OPTION) -Q -G --asmlist --double=24 --float=24 --opt=default,+asm,-asmfile,+speed,-space,-debug,9 --addrqual=ignore --mode=free -P -N255 --warn=0 --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib "--errformat=%%f:%%l: error: %%s" "--warnformat=%%f:%%l: warning: %%s" "--msgformat=%%f:%%l: advisory: %%s" -o${OBJECTDIR}/TIMER.p1 TIMER.c |
@-${MV} ${OBJECTDIR}/TIMER.d ${OBJECTDIR}/TIMER.p1.d |
@${FIXDEPS} ${OBJECTDIR}/TIMER.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
${OBJECTDIR}/INTERRUPT.p1: INTERRUPT.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/INTERRUPT.p1.d |
${MP_CC} --pass1 $(MP_EXTRA_CC_PRE) --chip=$(MP_PROCESSOR_OPTION) -Q -G --asmlist --double=24 --float=24 --opt=default,+asm,-asmfile,+speed,-space,-debug,9 --addrqual=ignore --mode=free -P -N255 --warn=0 --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib "--errformat=%%f:%%l: error: %%s" "--warnformat=%%f:%%l: warning: %%s" "--msgformat=%%f:%%l: advisory: %%s" -o${OBJECTDIR}/INTERRUPT.p1 INTERRUPT.c |
@-${MV} ${OBJECTDIR}/INTERRUPT.d ${OBJECTDIR}/INTERRUPT.p1.d |
@${FIXDEPS} ${OBJECTDIR}/INTERRUPT.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
${OBJECTDIR}/UART.p1: UART.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/UART.p1.d |
${MP_CC} --pass1 $(MP_EXTRA_CC_PRE) --chip=$(MP_PROCESSOR_OPTION) -Q -G --asmlist --double=24 --float=24 --opt=default,+asm,-asmfile,+speed,-space,-debug,9 --addrqual=ignore --mode=free -P -N255 --warn=0 --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib "--errformat=%%f:%%l: error: %%s" "--warnformat=%%f:%%l: warning: %%s" "--msgformat=%%f:%%l: advisory: %%s" -o${OBJECTDIR}/UART.p1 UART.c |
@-${MV} ${OBJECTDIR}/UART.d ${OBJECTDIR}/UART.p1.d |
@${FIXDEPS} ${OBJECTDIR}/UART.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
${OBJECTDIR}/I2C.p1: I2C.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/I2C.p1.d |
${MP_CC} --pass1 $(MP_EXTRA_CC_PRE) --chip=$(MP_PROCESSOR_OPTION) -Q -G --asmlist --double=24 --float=24 --opt=default,+asm,-asmfile,+speed,-space,-debug,9 --addrqual=ignore --mode=free -P -N255 --warn=0 --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib "--errformat=%%f:%%l: error: %%s" "--warnformat=%%f:%%l: warning: %%s" "--msgformat=%%f:%%l: advisory: %%s" -o${OBJECTDIR}/I2C.p1 I2C.c |
@-${MV} ${OBJECTDIR}/I2C.d ${OBJECTDIR}/I2C.p1.d |
@${FIXDEPS} ${OBJECTDIR}/I2C.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
endif |
# ------------------------------------------------------------------------------------ |
/PIC Stuff/PICX_16F1829_BLE_IMU/nbproject/Makefile-genesis.properties |
---|
1,6 → 1,6 |
# |
#Fri May 31 18:15:01 EDT 2013 |
default.languagetoolchain.dir=C\:\\Program Files (x86)\\Microchip\\xc8\\v1.12\\bin |
#Mon May 06 15:34:30 EDT 2013 |
default.languagetoolchain.dir=C\:\\PROGRAM FILES (X86)\\MICROCHIP\\XC8\\V1.12\\BIN |
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=415494acd195d89b2f6d7a36797a5ab4 |
default.languagetoolchain.version=1.12 |
host.platform=windows |
/PIC Stuff/PICX_16F1829_BLE_IMU/nbproject/Makefile-local-default.mk |
---|
21,7 → 21,7 |
# Path to java used to run MPLAB X when this makefile was created |
MP_JAVA_PATH="C:\Program Files (x86)\Microchip\MPLABX\sys\java\jre1.6.0_32-windows-x64\java-windows/bin/" |
OS_CURRENT="$(shell uname -s)" |
MP_CC="C:\Program Files (x86)\Microchip\xc8\v1.12\bin\xc8.exe" |
MP_CC="C:\PROGRAM FILES (X86)\MICROCHIP\XC8\V1.12\BIN\xc8.exe" |
# MP_CPPC is not defined |
# MP_BC is not defined |
# MP_AS is not defined |
28,7 → 28,7 |
# MP_LD is not defined |
# MP_AR is not defined |
DEP_GEN=${MP_JAVA_PATH}java -jar "C:/Program Files (x86)/Microchip/MPLABX/mplab_ide/mplab_ide/modules/../../bin/extractobjectdependencies.jar" |
MP_CC_DIR="C:\Program Files (x86)\Microchip\xc8\v1.12\bin" |
MP_CC_DIR="C:\PROGRAM FILES (X86)\MICROCHIP\XC8\V1.12\BIN" |
# MP_CPPC_DIR is not defined |
# MP_BC_DIR is not defined |
# MP_AS_DIR is not defined |
/PIC Stuff/PICX_16F1829_BLE_IMU/nbproject/configurations.xml |
---|
4,10 → 4,6 |
<logicalFolder name="HeaderFiles" |
displayName="Header Files" |
projectFiles="true"> |
<itemPath>main.h</itemPath> |
<itemPath>TIMER.h</itemPath> |
<itemPath>INTERRUPT.h</itemPath> |
<itemPath>UART.h</itemPath> |
</logicalFolder> |
<logicalFolder name="LinkerScript" |
displayName="Linker Files" |
17,9 → 13,6 |
displayName="Source Files" |
projectFiles="true"> |
<itemPath>main.c</itemPath> |
<itemPath>TIMER.c</itemPath> |
<itemPath>INTERRUPT.c</itemPath> |
<itemPath>UART.c</itemPath> |
</logicalFolder> |
<logicalFolder name="ExternalFiles" |
displayName="Important Files" |
145,7 → 138,7 |
<property key="programoptions.preserveprogramrange.start" value="0x0"/> |
<property key="programoptions.preserveuserid" value="false"/> |
<property key="programoptions.usehighvoltageonmclr" value="false"/> |
<property key="programoptions.uselvpprogramming" value="false"/> |
<property key="programoptions.uselvpprogramming" value="true"/> |
<property key="voltagevalue" value="3.25"/> |
</PICkit3PlatformTool> |
<XC8-config-global> |
/PIC Stuff/PICX_16F1829_BLE_IMU/nbproject/private/configurations.xml |
---|
5,7 → 5,7 |
<confs> |
<conf name="default" type="2"> |
<platformToolSN>:=MPLABCommUSB:=04D8:=900A:=0002:=Microchip Technology Inc.:=PICkit 3:=BUR114189291:=x:=en</platformToolSN> |
<languageToolchainDir>C:\Program Files (x86)\Microchip\xc8\v1.12\bin</languageToolchainDir> |
<languageToolchainDir>C:\PROGRAM FILES (X86)\MICROCHIP\XC8\V1.12\BIN</languageToolchainDir> |
<mdbdebugger version="1"> |
<placeholder1>place holder 1</placeholder1> |
<placeholder2>place holder 2</placeholder2> |
/PIC Stuff/PICX_16F1829_BLE_IMU/nbproject/project.xml |
---|
8,7 → 8,7 |
<make-project-type>0</make-project-type> |
<c-extensions>c</c-extensions> |
<cpp-extensions/> |
<header-extensions>h</header-extensions> |
<header-extensions/> |
<sourceEncoding>ISO-8859-1</sourceEncoding> |
<make-dep-projects/> |
</data> |