Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 272 → Rev 273

/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"/>