/PIC Stuff/PICX_16F1829_Controller/I2C1.c |
---|
2,6 → 2,7 |
#include "I2C1.h" |
static I2C1_DATA *i2c_data_p; |
extern BTN_STATUS btns; |
// Set up the data structures for the base_I2C.code |
// Should be called once before any i2c routines are called |
521,16 → 522,15 |
/* Put data to be returned here */ |
uint8_t I2C1_Process_Receive(uint8_t c) { |
uint8_t ret = 0; |
BTN_STATUS btns; |
CLRWDT(); |
// btns.value = 0; |
switch (c) { |
case CMD_QUERY_BTN: |
// Pins_Read(&btns); |
// i2c_data_p->buffer_out[0] = btns.value; |
// i2c_data_p->buffer_out_len = 1; |
// ret = 1; |
i2c_data_p->buffer_out[0] = btns.w; |
i2c_data_p->buffer_out_len = 1; |
ret = 1; |
break; |
default: |
break; |
} |
return ret; |
} |
/PIC Stuff/PICX_16F1829_Controller/I2C2.c |
---|
521,16 → 521,6 |
/* Put data to be returned here */ |
uint8_t I2C2_Process_Receive(uint8_t c) { |
uint8_t ret = 0; |
BTN_STATUS btns; |
CLRWDT(); |
// btns.value = 0; |
switch (c) { |
case CMD_QUERY_BTN: |
// Pins_Read(&btns); |
// i2c_data_p->buffer_out[0] = btns.value; |
// i2c_data_p->buffer_out_len = 1; |
// ret = 1; |
break; |
} |
return ret; |
} |
/PIC Stuff/PICX_16F1829_Controller/INTERRUPTS.c |
---|
2,6 → 2,7 |
#include "INTERRUPTS.h" |
#include "I2C1.h" |
#include "I2C2.h" |
#include "IO.h" |
void Interrupt_Init() { |
56,6 → 57,14 |
return; |
} |
// Check to see if we have an IO interrupt |
if (INTCONbits.IOCIF) { |
// Call the handler |
IO_Interrupt(); |
return; |
} |
// // Check to see if we have an interrupt on USART1 RX |
// if (PIR1bits.RC1IF) { |
// // Call the interrupt handler |
/PIC Stuff/PICX_16F1829_Controller/IO.c |
---|
0,0 → 1,55 |
#include "defines.h" |
#include "IO.h" |
#include "MCP23009.h" |
void IO_Init(void) { |
// Set all pins to digital I/O |
ANSELA = 0x0; |
ANSELB = 0x0; |
ANSELC = 0x0; |
// Enable weak pull-up if WPU bit is set |
OPTION_REGbits.nWPUEN = 0; |
// Initialize interrupt inputs |
LSM303_INT_TRIS = 1; |
L3GD20_INT_TRIS = 1; |
BTN_INT_TRIS = 1; |
// Initialize UART pins |
UART_RX_TRIS = 1; |
UART_TX_TRIS = 0; |
// Initialize I2C address pins |
I2C_ADDR_0_TRIS = 1; |
I2C_ADDR_1_TRIS = 1; |
I2C_ADDR_2_TRIS = 1; |
I2C_ADDR_3_TRIS = 1; |
// Enable the weak-pullup on the address pins |
I2C_ADDR_0_WPU = 1; |
I2C_ADDR_1_WPU = 1; |
I2C_ADDR_2_WPU = 1; |
I2C_ADDR_3_WPU = 1; |
// Initialize I2C pins (dont really need to as the I2C code does it) |
I2C_1_CLK_TRIS = 1; |
I2C_1_DAT_TRIS = 1; |
I2C_2_CLK_TRIS = 1; |
I2C_2_DAT_TRIS = 1; |
} |
void IO_IOC_Enable(void) { |
// Clear all IOC flags |
IOCAF = 0x0; |
IOCBF = 0x0; |
// Trigger interrupt on BTN_INT on falling edge |
IOCANbits.IOCAN2 = 1; |
// Enable IOC interrupts |
INTCONbits.IOCIE = 1; |
} |
void IO_Interrupt(void) { |
Reset_Board(OP_STATE_ACTIVE); |
} |
/PIC Stuff/PICX_16F1829_Controller/IO.h |
---|
0,0 → 1,13 |
#ifndef IO_H |
#define IO_H |
typedef struct { |
uint8_t btn_change; |
} IO_DATA; |
void IO_Init(void); |
void IO_IOC_Enable(void); |
void IO_Interrupt(void); |
#endif /* IO_H */ |
/PIC Stuff/PICX_16F1829_Controller/MCP23009.c |
---|
2,18 → 2,21 |
#include "MCP23009.h" |
#include "I2C2.h" |
static BTN_STATUS *status_ptr; |
void MCP23009_Init(void) { |
void MCP23009_Init(BTN_STATUS *status) { |
status_ptr = status; |
uint8_t buffer[8]; |
buffer[0] = 0x00; // Starting register address |
buffer[1] = 0xFF; // Set all pins as inputs |
buffer[2] = 0xFF; // Reported values are inverted |
buffer[3] = 0x00; // Disable interrupt-on-change |
buffer[4] = 0x00; // IOC default values |
buffer[5] = 0x00; // IOC compare to previous pin value |
buffer[6] = 0x00; // Config settings |
buffer[7] = 0xFF; // Enable pull-ups on all pins |
buffer[1] = 0xFF; // IODIR, Set all pins as inputs |
buffer[2] = 0xFF; // IPOL, Reported values are inverted |
buffer[3] = 0xFF; // GPINTEN, Enable interrupt-on-change |
buffer[4] = 0x00; // DEFVAL, IOC default values |
buffer[5] = 0x00; // INTCON, IOC compare to previous value |
buffer[6] = 0x00; // IOCON, Incrementing address, active-low interrupt cleared on GPIO read |
buffer[7] = 0xFF; // GPPU, Enable pull-ups on all pins |
I2C2_Master_Send(MCP23009_ADDR, 8, buffer); |
uint8_t result; |
22,21 → 25,15 |
} while (!result); |
} |
void MCP23009_Query(BTN_STATUS *status) { |
uint8_t buffer[2] = {MCP23009_GPIOA}; |
void MCP23009_Query(void) { |
uint8_t buffer[2]; |
I2C2_Master_Send(MCP23009_ADDR, 1, buffer); |
I2C2_Master_Restart(MCP23009_ADDR, MCP23009_GPIOA, 1); |
uint8_t result; |
do { |
result = I2C2_Get_Status(); |
} while (!result); |
I2C2_Master_Recv(MCP23009_ADDR, 1); |
uint8_t result; |
do { |
result = I2C2_Get_Status(); |
} while (!result); |
I2C2_Read_Buffer(buffer); |
status->w = buffer[0]; |
} |
status_ptr->w = buffer[0]; |
} |
/PIC Stuff/PICX_16F1829_Controller/MCP23009.h |
---|
15,8 → 15,9 |
#define MCP23009_GPIOA 0x09 |
#define MCP23009_OLATA 0x0A |
void MCP23009_Init(void); |
void MCP23009_Query(BTN_STATUS *status); |
void MCP23009_Init(BTN_STATUS *status); |
void MCP23009_Query(void); |
void MSP23009_Interrupt(void); |
#endif /* MCP23009_H */ |
/PIC Stuff/PICX_16F1829_Controller/defines.h |
---|
42,10 → 42,10 |
#define I2C_ADDR_1_WPU WPUCbits.WPUC1 |
#define I2C_ADDR_0_WPU WPUCbits.WPUC0 |
#define I2C_ADDR_3_LAT LATCbits.LATC3 |
#define I2C_ADDR_2_LAT LATCbits.LATC2 |
#define I2C_ADDR_1_LAT LATCbits.LATC1 |
#define I2C_ADDR_0_LAT LATCbits.LATC0 |
#define I2C_ADDR_3_PORT PORTCbits.RC3 |
#define I2C_ADDR_2_PORT PORTCbits.RC2 |
#define I2C_ADDR_1_PORT PORTCbits.RC1 |
#define I2C_ADDR_0_PORT PORTCbits.RC0 |
#define I2C_1_CLK_TRIS TRISBbits.TRISB6 |
#define I2C_1_DAT_TRIS TRISBbits.TRISB4 |
58,7 → 58,20 |
#define CMD_QUERY_BTN 0x0A |
#define CMD_SET_LEDS 0x0B |
#define CMD_RESET 0x0C |
#define OP_STATE_IDLE 0x10 |
#define OP_STATE_ACTIVE 0x20 |
#define RESET_POR 0x0 |
#define RESET_BOR 0x1 |
#define RESET_MCLR 0x2 |
#define RESET_WDT 0x3 |
#define RESET_RST 0x4 |
#define RESET_STK 0x5 |
#define I2C1_SLAVE_PREFIX 0x10 |
typedef union { |
struct { |
unsigned BTN_L_N :1; |
95,6 → 108,9 |
uint8_t w[16]; |
} LED_VALUES; |
void Reset_Board(uint8_t next_state); |
uint8_t Get_Last_Reset(void); |
void Idle_Animation(void); |
#endif /* DEFINES_H */ |
/PIC Stuff/PICX_16F1829_Controller/funclist |
---|
1,29 → 1,36 |
_I2C2_Interrupt_Master: CODE, 27 0 706 |
_I2C1_Init: CODE, 2886 0 91 |
_I2C2_Interrupt_Master: CODE, 34 0 706 |
_Get_Last_Reset: CODE, 2221 0 43 |
_IO_IOC_Enable: CODE, 6042 0 6 |
_I2C1_Init: CODE, 2771 0 91 |
_I2C1_Interrupt_Slave: CODE, 3275 0 397 |
_I2C2_Init: CODE, 1955 0 91 |
_I2C1_Read_Buffer: CODE, 2619 0 73 |
_I2C2_Init: CODE, 2862 0 91 |
_I2C2_Interrupt_Slave: CODE, 3672 0 424 |
_I2C2_Read_Buffer: CODE, 2733 0 70 |
_main: CODE, 2977 0 127 |
_Interrupt_Enable: CODE, 2169 0 3 |
_InterruptHandler: CODE, 4 0 21 |
_Read_Address: CODE, 2438 0 51 |
_I2C1_Process_Receive: CODE, 2184 0 10 |
_Interrupt_Init: CODE, 3 0 1 |
__initialization: CODE, 2333 0 27 |
_MCP23009_Init: CODE, 2397 0 41 |
_I2C2_Process_Receive: CODE, 2194 0 10 |
_TLC59116_Init: CODE, 2663 0 70 |
_I2C2_Configure_Master: CODE, 2363 0 34 |
_I2C1_Interrupt_Handler: CODE, 2204 0 24 |
_MCP23009_Query: CODE, 2545 0 56 |
_I2C2_Master_Send: CODE, 2803 0 83 |
_I2C1_Configure_Slave: CODE, 2304 0 29 |
_I2C2_Interrupt_Handler: CODE, 2252 0 26 |
_TLC59116_Write_All: CODE, 3104 0 171 |
_I2C2_Master_Recv: CODE, 2489 0 56 |
_I2C1_Interrupt_Master: CODE, 733 0 663 |
_Pins_Init: CODE, 2278 0 26 |
_I2C2_Get_Status: CODE, 2601 0 62 |
_Idle_Animation: CODE, 1396 0 559 |
Total: 3929 |
_I2C2_Read_Buffer: CODE, 2479 0 70 |
_IO_Interrupt: CODE, 2048 0 4 |
_main: CODE, 3064 0 211 |
_Interrupt_Enable: CODE, 6039 0 3 |
_I2C2_Master_Restart: CODE, 2692 0 79 |
i1_Reset_Board: CODE, 6054 0 8 |
_InterruptHandler: CODE, 4 0 28 |
_Read_Address: CODE, 6079 0 15 |
_I2C1_Process_Receive: CODE, 2123 0 30 |
_Interrupt_Init: CODE, 2047 0 1 |
__initialization: CODE, 2264 0 40 |
_MCP23009_Init: CODE, 2307 0 49 |
_I2C2_Process_Receive: CODE, 6036 0 3 |
_TLC59116_Init: CODE, 2549 0 70 |
_I2C2_Configure_Master: CODE, 2153 0 34 |
_I2C1_Interrupt_Handler: CODE, 6094 0 24 |
_MCP23009_Query: CODE, 2187 0 34 |
_IO_Init: CODE, 2068 0 26 |
_I2C2_Master_Send: CODE, 1958 0 83 |
_I2C1_Configure_Slave: CODE, 2094 0 29 |
_I2C2_Interrupt_Handler: CODE, 6118 0 26 |
_TLC59116_Write_All: CODE, 2953 0 111 |
_Reset_Board: CODE, 6070 0 9 |
_I2C1_Get_Status: CODE, 2356 0 61 |
_I2C1_Interrupt_Master: CODE, 740 0 663 |
_I2C2_Get_Status: CODE, 2417 0 62 |
_Idle_Animation: CODE, 1403 0 555 |
Total: 4159 |
/PIC Stuff/PICX_16F1829_Controller/l.obj |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/PIC Stuff/PICX_16F1829_Controller/main.c |
---|
3,7 → 3,7 |
// CONFIG1 |
#pragma config FOSC = INTOSC // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin) |
#pragma config WDTE = OFF // Watchdog Timer Enable (WDT disabled) |
#pragma config WDTE = OFF // Watchdog Timer Enable (WDT software controlled) |
#pragma config PWRTE = OFF // Power-up Timer Enable (PWRT disabled) |
#pragma config MCLRE = ON // MCLR Pin Function Select (MCLR/VPP pin function is digital input) |
#pragma config CP = OFF // Flash Program Memory Code Protection (Program memory code protection is disabled) |
23,61 → 23,65 |
#include "defines.h" |
#include "INTERRUPTS.h" |
#include "IO.h" |
#include "I2C1.h" |
#include "I2C2.h" |
#include "TLC59116.h" |
#include "MCP23009.h" |
void Pins_Init(void) { |
// Set all pins to digital I/O |
ANSELA = 0x0; |
ANSELB = 0x0; |
ANSELC = 0x0; |
persistent uint8_t op_state; |
// Enable weak pull-up if WPU bit is set |
OPTION_REGbits.nWPUEN = 0; |
void Reset_Board(uint8_t next_state) { |
op_state = next_state; |
RESET(); |
} |
// Initialize interrupt inputs |
LSM303_INT_TRIS = 1; |
L3GD20_INT_TRIS = 1; |
BTN_INT_TRIS = 1; |
uint8_t Get_Last_Reset(void) { |
uint8_t ret; |
if (PCONbits.nPOR == 0) { |
ret = RESET_POR; |
} else if (PCONbits.nBOR == 0) { |
ret = RESET_BOR; |
} else if (STATUSbits.nTO == 0) { |
ret = RESET_WDT; |
} else if (PCONbits.nRMCLR == 0) { |
ret = RESET_MCLR; |
} else if (PCONbits.STKOVF || PCONbits.STKUNF) { |
ret = RESET_STK; |
} else if (PCONbits.nRI == 0) { |
ret = RESET_RST; |
} else { |
ret = RESET_POR; |
} |
// Initialize UART pins |
UART_RX_TRIS = 1; |
UART_TX_TRIS = 0; |
// Initialize I2C address pins |
I2C_ADDR_0_TRIS = 1; |
I2C_ADDR_1_TRIS = 1; |
I2C_ADDR_2_TRIS = 1; |
I2C_ADDR_3_TRIS = 1; |
// Enable the weak-pullup on the address pins |
I2C_ADDR_0_WPU = 1; |
I2C_ADDR_1_WPU = 1; |
I2C_ADDR_2_WPU = 1; |
I2C_ADDR_3_WPU = 1; |
// Initialize I2C pins (dont really need to as the I2C code does it) |
I2C_1_CLK_TRIS = 1; |
I2C_1_DAT_TRIS = 1; |
I2C_2_CLK_TRIS = 1; |
I2C_2_DAT_TRIS = 1; |
PCON = 0x0F; |
STATUSbits.nPD = 1; |
STATUSbits.nTO = 1; |
return ret; |
} |
uint8_t Read_Address(void) { |
uint8_t ret = 0; |
ret |= I2C_ADDR_3_LAT << 3; |
ret |= I2C_ADDR_2_LAT << 2; |
ret |= I2C_ADDR_1_LAT << 1; |
ret |= I2C_ADDR_0_LAT; |
uint8_t ret = I2C1_SLAVE_PREFIX; |
if (!I2C_ADDR_3_PORT) |
ret |= 0x08; |
if (!I2C_ADDR_2_PORT) |
ret |= 0x04; |
if (!I2C_ADDR_1_PORT) |
ret |= 0x02; |
if (!I2C_ADDR_0_PORT) |
ret |= 0x01; |
return ret; |
} |
BTN_STATUS btns; |
int main(void) { |
uint8_t buffer[32]; |
uint8_t result, length; |
uint8_t i2c_slave_addr; |
// uint8_t op_state; |
uint8_t i; |
// Set internal oscillator speed to 32MHz |
OSCCONbits.SPLLEN = 1; // 4x PLL enable (overwritten by config bits) |
84,15 → 88,24 |
OSCCONbits.IRCF = 0xE; // Base frequency @ 8MHz |
OSCCONbits.SCS = 0b00; // System clock determined by config bits |
// Set watchdog timer to reset device every 1s |
// CLRWDT is issued upon receiving data over I2C |
// WDTCON = 0x0A; |
// Initialize I/O |
Pins_Init(); |
IO_Init(); |
uint8_t last_reset = Get_Last_Reset(); |
if (last_reset == RESET_POR || last_reset == RESET_BOR || |
last_reset == RESET_MCLR || last_reset == RESET_WDT || |
last_reset == RESET_STK) { |
op_state = OP_STATE_IDLE; |
} |
// if (last_reset == RESET_RST) { |
// op_state = OP_STATE_ACTIVE; |
// } |
i2c_slave_addr = Read_Address(); |
// Delay a bit to allow I2C lines to stabilize |
__delay_ms(1); |
// Initialize I2C1 in slave mode |
I2C1_DATA i2c1_data; |
I2C1_Init(&i2c1_data); |
107,31 → 120,36 |
Interrupt_Init(); |
Interrupt_Enable(); |
MCP23009_Init(&btns); |
MCP23009_Query(); |
LED_VALUES leds = {0x00}; |
TLC59116_Init(); |
MCP23009_Init(); |
// TLC59116_Write_All(&leds); |
BTN_STATUS btns; |
LED_VALUES leds = {0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00, |
0x00, 0x00, 0x00, 0x00}; |
if (op_state == OP_STATE_IDLE) { |
IO_IOC_Enable(); |
Idle_Animation(); |
} else if (op_state == OP_STATE_ACTIVE) { |
while (1) { |
__delay_ms(1); |
// Read value of buttons |
MCP23009_Query(); |
TLC59116_Write_All(&leds); |
Idle_Animation(); |
// Check for received data over I2C1 |
while (1) { |
MCP23009_Query(&btns); |
uint8_t i; |
for (i = 0; i < 8; i++) { |
if ((btns.w >> i) & 0x1) { |
leds.w[i] = 0x00; |
} else { |
leds.w[i] = 0x20; |
// Check if an I2C message was received |
result = I2C1_Get_Status(); |
if (result) { |
length = I2C1_Read_Buffer(buffer); |
if (length == 1 && buffer[0] == CMD_RESET) { |
Reset_Board(OP_STATE_IDLE); |
} else if (length == 17 && buffer[0] == CMD_SET_LEDS) { |
for (i = 0; i < 16; i++) { |
leds.w[i] = buffer[i+1]; |
} |
TLC59116_Write_All(&leds); |
} |
} |
} |
TLC59116_Write_All(&leds); |
} |
} |
/PIC Stuff/PICX_16F1829_Controller/nbproject/Makefile-default.mk |
---|
45,17 → 45,17 |
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE} |
# Source Files Quoted if spaced |
SOURCEFILES_QUOTED_IF_SPACED=main.c I2C1.c INTERRUPTS.c I2C2.c TLC59116.c MCP23009.c |
SOURCEFILES_QUOTED_IF_SPACED=main.c I2C1.c INTERRUPTS.c I2C2.c TLC59116.c MCP23009.c IO.c |
# Object Files Quoted if spaced |
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/main.p1 ${OBJECTDIR}/I2C1.p1 ${OBJECTDIR}/INTERRUPTS.p1 ${OBJECTDIR}/I2C2.p1 ${OBJECTDIR}/TLC59116.p1 ${OBJECTDIR}/MCP23009.p1 |
POSSIBLE_DEPFILES=${OBJECTDIR}/main.p1.d ${OBJECTDIR}/I2C1.p1.d ${OBJECTDIR}/INTERRUPTS.p1.d ${OBJECTDIR}/I2C2.p1.d ${OBJECTDIR}/TLC59116.p1.d ${OBJECTDIR}/MCP23009.p1.d |
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/main.p1 ${OBJECTDIR}/I2C1.p1 ${OBJECTDIR}/INTERRUPTS.p1 ${OBJECTDIR}/I2C2.p1 ${OBJECTDIR}/TLC59116.p1 ${OBJECTDIR}/MCP23009.p1 ${OBJECTDIR}/IO.p1 |
POSSIBLE_DEPFILES=${OBJECTDIR}/main.p1.d ${OBJECTDIR}/I2C1.p1.d ${OBJECTDIR}/INTERRUPTS.p1.d ${OBJECTDIR}/I2C2.p1.d ${OBJECTDIR}/TLC59116.p1.d ${OBJECTDIR}/MCP23009.p1.d ${OBJECTDIR}/IO.p1.d |
# Object Files |
OBJECTFILES=${OBJECTDIR}/main.p1 ${OBJECTDIR}/I2C1.p1 ${OBJECTDIR}/INTERRUPTS.p1 ${OBJECTDIR}/I2C2.p1 ${OBJECTDIR}/TLC59116.p1 ${OBJECTDIR}/MCP23009.p1 |
OBJECTFILES=${OBJECTDIR}/main.p1 ${OBJECTDIR}/I2C1.p1 ${OBJECTDIR}/INTERRUPTS.p1 ${OBJECTDIR}/I2C2.p1 ${OBJECTDIR}/TLC59116.p1 ${OBJECTDIR}/MCP23009.p1 ${OBJECTDIR}/IO.p1 |
# Source Files |
SOURCEFILES=main.c I2C1.c INTERRUPTS.c I2C2.c TLC59116.c MCP23009.c |
SOURCEFILES=main.c I2C1.c INTERRUPTS.c I2C2.c TLC59116.c MCP23009.c IO.c |
CFLAGS= |
126,6 → 126,14 |
@-${MV} ${OBJECTDIR}/MCP23009.d ${OBJECTDIR}/MCP23009.p1.d |
@${FIXDEPS} ${OBJECTDIR}/MCP23009.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
${OBJECTDIR}/IO.p1: IO.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/IO.p1.d |
@${RM} ${OBJECTDIR}/IO.p1 |
${MP_CC} --pass1 $(MP_EXTRA_CC_PRE) --chip=$(MP_PROCESSOR_OPTION) -Q -G -D__DEBUG=1 --debugger=pickit3 --double=24 --float=24 --opt=default,+asm,+asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib --output=-mcof,+elf "--errformat=%%f:%%l: error: (%%n) %%s" "--warnformat=%%f:%%l: warning: (%%n) %%s" "--msgformat=%%f:%%l: advisory: (%%n) %%s" -o${OBJECTDIR}/IO.p1 IO.c |
@-${MV} ${OBJECTDIR}/IO.d ${OBJECTDIR}/IO.p1.d |
@${FIXDEPS} ${OBJECTDIR}/IO.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
else |
${OBJECTDIR}/main.p1: main.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
175,6 → 183,14 |
@-${MV} ${OBJECTDIR}/MCP23009.d ${OBJECTDIR}/MCP23009.p1.d |
@${FIXDEPS} ${OBJECTDIR}/MCP23009.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
${OBJECTDIR}/IO.p1: IO.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/IO.p1.d |
@${RM} ${OBJECTDIR}/IO.p1 |
${MP_CC} --pass1 $(MP_EXTRA_CC_PRE) --chip=$(MP_PROCESSOR_OPTION) -Q -G --double=24 --float=24 --opt=default,+asm,+asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib --output=-mcof,+elf "--errformat=%%f:%%l: error: (%%n) %%s" "--warnformat=%%f:%%l: warning: (%%n) %%s" "--msgformat=%%f:%%l: advisory: (%%n) %%s" -o${OBJECTDIR}/IO.p1 IO.c |
@-${MV} ${OBJECTDIR}/IO.d ${OBJECTDIR}/IO.p1.d |
@${FIXDEPS} ${OBJECTDIR}/IO.p1.d $(SILENT) -rsi ${MP_CC_DIR}../ |
endif |
# ------------------------------------------------------------------------------------ |
/PIC Stuff/PICX_16F1829_Controller/nbproject/Makefile-genesis.properties |
---|
1,5 → 1,5 |
# |
#Fri Feb 28 00:28:10 EST 2014 |
#Thu Mar 13 23:42:40 EDT 2014 |
default.languagetoolchain.dir=C\:\\Program Files (x86)\\Microchip\\xc8\\v1.20\\bin |
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=1f98a0eed69cb2a45c12981fa9470927 |
default.languagetoolchain.version=1.20 |
/PIC Stuff/PICX_16F1829_Controller/nbproject/configurations.xml |
---|
10,6 → 10,7 |
<itemPath>I2C2.h</itemPath> |
<itemPath>TLC59116.h</itemPath> |
<itemPath>MCP23009.h</itemPath> |
<itemPath>IO.h</itemPath> |
</logicalFolder> |
<logicalFolder name="LinkerScript" |
displayName="Linker Files" |
24,6 → 25,7 |
<itemPath>I2C2.c</itemPath> |
<itemPath>TLC59116.c</itemPath> |
<itemPath>MCP23009.c</itemPath> |
<itemPath>IO.c</itemPath> |
</logicalFolder> |
<logicalFolder name="ExternalFiles" |
displayName="Important Files" |
132,7 → 134,6 |
<property key="ToolFirmwareFilePath" |
value="Press to browse for a specific firmware version"/> |
<property key="ToolFirmwareOption.UseLatestFirmware" value="true"/> |
<property key="firmware.download.all" value="false"/> |
<property key="hwtoolclock.frcindebug" value="false"/> |
<property key="memories.aux" value="false"/> |
<property key="memories.bootflash" value="false"/> |