/PIC Stuff/PIC_27J13/maindefs.h |
---|
File deleted |
/PIC Stuff/PIC_27J13/led_backpack.c |
---|
File deleted |
\ No newline at end of file |
/PIC Stuff/PIC_27J13/led_backpack.h |
---|
File deleted |
/PIC Stuff/PIC_27J13/adc.c |
---|
1,4 → 1,4 |
#include "maindefs.h" |
#include "defines.h" |
#include "adc.h" |
static ADC_DATA adc_data; |
/PIC Stuff/PIC_27J13/defines.h |
---|
0,0 → 1,104 |
#ifndef __maindefs_h |
#define __maindefs_h |
#include <p18f27j13.h> |
#include "uart.h" |
// Option to enable/disable internal oscillator |
#define USE_EXT_OSC |
// |
#define UART1_RX_TO_BUFFER |
//#define UART1_RX_TO_XBEE |
// Option to disable SPI MISO |
#define SPI2_WRITE_ONLY |
//#define _DEBUG |
//#define _TEST_UART |
//#define _TEST_I2C_MASTER |
//#define _TEST_I2C_SLAVE |
//#define _TEST_SPI |
//#define _TEST_NFC |
//#define _TEST_LED_BACKPACK |
//#define _TEST_SSD1306_OLED |
//#define _TEST_SSD1331_OLED |
//#define _TEST_ADC |
//#define _TEST_XBEE |
//#define _TEST_NFC_TO_SSD1306_OLED |
//#define _TEST_TIMER1_RTC |
#define _TEST_LUX |
// Enable or disable debug prints depending on project preprocessor (_DEBUG) |
#ifdef _DEBUG |
#define DBG_PRINT_MAIN(x) UART1_WriteS(x) |
#define DBG_PRINT_UART(x) UART1_WriteS(x) |
#define DBG_PRINT_I2C(x) UART1_WriteS(x) |
#define DBG_PRINT_SPI(x) UART1_WriteS(x) |
#define DBG_PRINT_XBEE(x) UART1_WriteS(x) |
#define DBG_PRINT_PORTB_INT(x) |
#define DBG_PRINT_INT(x) |
#define DBG_PRINT_BUFFER(x) |
#else |
#define DBG_PRINT_MAIN(x) |
#define DBG_PRINT_UART(x) |
#define DBG_PRINT_I2C(x) |
#define DBG_PRINT_SPI(x) |
#define DBG_PRINT_XBEE(x) |
#define DBG_PRINT_PORTB_INT(x) |
#define DBG_PRINT_INT(x) |
#define DBG_PRINT_BUFFER(x) |
#endif |
// Pin allocations |
#define LED_BLUE_TRIS TRISCbits.TRISC5 |
#define LED_BLUE_LAT LATCbits.LATC5 |
#define LED_RED_TRIS TRISCbits.TRISC2 |
#define LED_RED_LAT LATCbits.LATC2 |
#define ADC_AN0_TRIS TRISAbits.TRISA0 |
#define ADC_AN1_TRIS TRISAbits.TRISA1 |
#define ADC_AN2_TRIS TRISAbits.TRISA2 |
#define XBEE_CTS_TRIS TRISBbits.TRISB0 |
#define XBEE_CTS_LAT LATBbits.LATB0 |
#define XBEE_CTS_PORT PORTBbits.RB0 |
#define XBEE_RTS_TRIS TRISBbits.TRISB1 |
#define XBEE_RTS_LAT LATBbits.LATB1 |
#define SPI_MOSI_TRIS TRISBbits.TRISB0 |
#ifndef SPI2_WRITE_ONLY |
#define SPI_MISO_TRIS TRISBbits.TRISB0 |
#endif |
#define SPI_CLK_TRIS TRISAbits.TRISA0 |
#define SPI_DC_SELECT_TRIS TRISAbits.TRISA1 |
#define SPI_DC_SELECT_LAT LATAbits.LATA1 |
#define SPI_RESET_TRIS TRISAbits.TRISA2 |
#define SPI_RESET_LAT LATAbits.LATA2 |
#define SPI_SLAVE_SELECT_TRIS TRISAbits.TRISA3 |
#define SPI_SLAVE_SELECT_LAT LATAbits.LATA3 |
#define NFC_IRQ_TRIS TRISAbits.TRISA5 |
#define NFC_IRQ_PORT PORTAbits.RA5 |
//#define NFC_RESET_TRIS TRISCbits.TRISC2 |
//#define NFC_RESET_LAT LATCbits.LATC2 |
#define I2C_CLK_TRIS TRISCbits.TRISC3 |
#define I2C_DAT_TRIS TRISCbits.TRISC4 |
#define UART1_RX_TRIS TRISCbits.TRISC7 |
#define UART1_TX_TRIS TRISCbits.TRISC6 |
// PPS bindings (RP Pins) |
#define PPS_SPI2_CLK_IN 0 // A0 |
#define PPS_SPI2_CLK_OUT RPOR0 // A0 |
#define PPS_SPI2_MOSI RPOR3 // B0 |
#ifndef SPI2_WRITE_ONLY |
#define PPS_SPI2_MISO 3 // NA |
#endif |
//#define PPS_UART2_RX 5 |
//#define PPS_UART2_TX RPOR6 |
#endif |
/PIC Stuff/PIC_27J13/i2c.c |
---|
1,4 → 1,4 |
#include "maindefs.h" |
#include "defines.h" |
#include "i2c.h" |
static I2C_DATA i2c_data; |
/PIC Stuff/PIC_27J13/i2c.h |
---|
70,7 → 70,7 |
void I2C_Interrupt_Master(void); |
void I2C_Configure_Slave(unsigned char); |
void I2C_Configure_Master(unsigned char speed); |
void I2C_Master_Send(unsigned char address, unsigned char length,unsigned char *msg); |
void I2C_Master_Send(unsigned char address, unsigned char length, unsigned char *msg); |
void I2C_Master_Recv(unsigned char address, unsigned char length); |
void I2C_Master_Restart(unsigned char address, unsigned char msg, unsigned char length); |
unsigned char I2C_Get_Status(void); |
/PIC Stuff/PIC_27J13/interrupts.c |
---|
1,9 → 1,10 |
#include "maindefs.h" |
#include "defines.h" |
#include "interrupts.h" |
#include "uart.h" |
#include "i2c.h" |
#include "spi.h" |
#include "adc.h" |
#include "timers.h" |
//---------------------------------------------------------------------------- |
// Note: This code for processing interrupts is configured to allow for high and |
27,9 → 28,9 |
// Low priority interrupts |
// INTCON2bits.TMR0IP = 0; // Timer0 interrupt |
// IPR1bits.TMR1IP = 0; // Timer1 interrupt |
IPR1bits.TMR1IP = 0; // Timer1 interrupt |
// IPR2bits.TMR3IP = 0; // Timer 3 interrupt |
IPR1bits.ADIP = 0; // ADC interupt |
// IPR1bits.ADIP = 0; // ADC interupt |
// INTCON2bits.RBIP = 0; // Port B interrupt |
// INTCON3bits.INT1IP = 0; // INT1 interrupt |
104,17 → 105,17 |
// We need to check the interrupt flag of each enabled high-priority interrupt to |
// see which device generated this interrupt. Then we can call the correct handler. |
// Check to see if we have an SPI2 interrupt |
if (PIR3bits.SSP2IF) { |
// Call the handler |
SPI2_Recv_Interrupt_Handler(); |
// // Check to see if we have an SPI2 interrupt |
// if (PIR3bits.SSP2IF) { |
// // Call the handler |
// SPI2_Recv_Interrupt_Handler(); |
// |
// // Clear the interrupt flag |
// PIR3bits.SSP2IF = 0; |
// |
// return; |
// } |
// Clear the interrupt flag |
PIR3bits.SSP2IF = 0; |
return; |
} |
// Check to see if we have an I2C interrupt |
if (PIR1bits.SSPIF) { |
// Call the handler |
195,15 → 196,15 |
// INTCONbits.TMR0IF = 0; |
// } |
// // Check to see if we have an interrupt on timer 1 |
// if (PIR1bits.TMR1IF) { |
// // Call the interrupt handler |
// timer1_interrupt_handler(); |
// |
// // Clear the interrupt flag |
// PIR1bits.TMR1IF = 0; |
// } |
// Check to see if we have an interrupt on timer 1 |
if (PIR1bits.TMR1IF) { |
// Call the interrupt handler |
Timer1_Interrupt_Handler(); |
// Clear the interrupt flag |
PIR1bits.TMR1IF = 0; |
} |
// // Check to see if we have an interrupt on timer 3 |
// if (PIR2bits.TMR3IF) { |
// DBG_PRINT_INT("INT: Timer 3\r\n"); |
212,13 → 213,13 |
// PIR2bits.TMR3IF = 0; |
// } |
// Check to see if we have an interrupt on ADC |
if (PIR1bits.ADIF) { |
// Call the interrupt handler |
ADC_Interrupt_Handler(); |
// Clear the interrupt flag |
PIR1bits.ADIF = 0; |
} |
// // Check to see if we have an interrupt on ADC |
// if (PIR1bits.ADIF) { |
// // Call the interrupt handler |
// ADC_Interrupt_Handler(); |
// |
// // Clear the interrupt flag |
// PIR1bits.ADIF = 0; |
// } |
} |
/PIC Stuff/PIC_27J13/led_HT16K33.c |
---|
0,0 → 1,137 |
#include "led_HT16K33.h" |
#include "i2c.h" |
static const char numbertable[] = { |
0x3F /* 0 */, |
0x06 /* 1 */, |
0x5B /* 2 */, |
0x4F /* 3 */, |
0x66 /* 4 */, |
0x6D /* 5 */, |
0x7D, /* 6 */ |
0x07, /* 7 */ |
0x7F, /* 8 */ |
0x6F, /* 9 */ |
}; |
static const char alphatable[] = { |
0x77, /* a */ |
0x7C, /* b */ |
0x39, /* C */ |
0x5E, /* d */ |
0x79, /* E */ |
0x71, /* F */ |
}; |
static LED_DATA led_data; |
static LED_DATA *led_data_p = &led_data; |
void LED_Init() { |
led_data_p->i2c_address = 0x70; |
} |
void LED_Start() { |
unsigned char result; |
unsigned char c = 0x21; // Cmd to turn on oscillator |
I2C_Master_Send(led_data_p->i2c_address, 1, &c); |
result = I2C_Get_Status(); |
while (!result) { |
result = I2C_Get_Status(); |
} |
LED_blinkRate(HT16K33_BLINK_OFF); |
LED_setBrightness(15); // Max brightness |
LED_clear(); |
LED_writeDisplay(); |
} |
void LED_setBrightness(unsigned char c) { |
unsigned char result; |
if (c > 15) c = 15; |
c |= 0xE0; |
I2C_Master_Send(led_data_p->i2c_address, 1, &c); |
result = I2C_Get_Status(); |
while (!result) { |
result = I2C_Get_Status(); |
} |
} |
void LED_blinkRate(unsigned char c) { |
unsigned char buffer; |
if (c > 3) c = 0; |
buffer = HT16K33_BLINK_CMD | HT16K33_BLINK_DISPLAYON | (c << 1); |
I2C_Master_Send(led_data_p->i2c_address, 1, &buffer); |
buffer = I2C_Get_Status(); |
while (!buffer) { |
buffer = I2C_Get_Status(); |
} |
} |
void LED_writeDisplay() { |
unsigned char result; |
led_data_p->display_buffer[0] = 0x00; // Start at address 0x00 |
I2C_Master_Send(led_data_p->i2c_address, 17, led_data_p->display_buffer); |
result = I2C_Get_Status(); |
while (!result) { |
result = I2C_Get_Status(); |
} |
} |
void LED_clear() { |
unsigned char c; |
for (c = 0; c < 17; c++) { |
led_data_p->display_buffer[c] = 0; |
} |
} |
void LED_drawColon(unsigned char c) { |
if (c) { |
led_data_p->display_buffer[5] = 0xFF; |
} else { |
led_data_p->display_buffer[5] = 0; |
} |
} |
void LED_writeDigitRaw(unsigned char loc, unsigned char bitmask) { |
if (loc > 4) return; |
led_data_p->display_buffer[(loc<<1)+1] = bitmask; |
} |
void LED_writeDigitNum(unsigned char loc, unsigned char num, unsigned char dot) { |
if (loc > 4) return; |
if (loc > 1) loc++; |
LED_writeDigitRaw(loc, numbertable[num] | dot << 7); |
} |
void LED_writeDigitAlpha(unsigned char loc, unsigned char alpha, unsigned char dot) { |
if (loc > 4) return; |
if (loc > 1) loc++; |
LED_writeDigitRaw(loc, alphatable[alpha] | dot << 7); |
} |
void LED_writeNum(unsigned int i) { |
LED_writeDigitNum(0, (i%10000)/1000, 0); |
LED_writeDigitNum(1, (i%1000)/100, 0); |
LED_writeDigitNum(2, (i%100)/10, 0); |
LED_writeDigitNum(3, i%10, 0); |
if (i < 10) { |
LED_writeDigitRaw(0, 0); |
LED_writeDigitRaw(1, 0); |
LED_writeDigitRaw(3, 0); |
} else if (i < 100) { |
LED_writeDigitRaw(0, 0); |
LED_writeDigitRaw(1, 0); |
} else if (i < 1000) { |
LED_writeDigitRaw(0, 0); |
} |
LED_writeDisplay(); |
} |
/PIC Stuff/PIC_27J13/led_HT16K33.h |
---|
0,0 → 1,32 |
#ifndef LED_BACKPACK_H |
#define LED_BACKPACK_H |
#define HT16K33_BLINK_CMD 0x80 |
#define HT16K33_BLINK_DISPLAYON 0x01 |
#define HT16K33_BLINK_OFF 0 |
#define HT16K33_BLINK_2HZ 1 |
#define HT16K33_BLINK_1HZ 2 |
#define HT16K33_BLINK_HALFHZ 3 |
#define HT16K33_CMD_BRIGHTNESS 0x0E |
typedef struct { |
unsigned char i2c_address; |
unsigned char display_buffer[17]; |
} LED_DATA; |
void LED_Init(void); |
void LED_Start(void); |
void LED_setBrightness(unsigned char c); |
void LED_blinkRate(unsigned char c); |
void LED_writeDisplay(void); |
void LED_clear(void); |
void LED_drawColon(unsigned char c); |
void LED_writeDigitRaw(unsigned char loc, unsigned char bitmask); |
void LED_writeDigitNum(unsigned char loc, unsigned char num, unsigned char dot); |
void LED_writeDigitAlpha(unsigned char loc, unsigned char alpha, unsigned char dot); |
void LED_writeNum(unsigned int i); |
#endif /* LED_BACKPACK_H */ |
/PIC Stuff/PIC_27J13/lux_TSL2561.c |
---|
0,0 → 1,15 |
#include "lux_TSL2561.h" |
#include "i2c.h" |
static TSL2561_DATA tsl2561_data; |
static TSL2561_DATA *tsl2561_data_p = &tsl2561_data; |
void LUX_Init(unsigned char address) { |
tsl2561_data_p->address = address; |
tsl2561_data_p->integration = TSL2561_INTEGRATIONTIME_13MS; |
tsl2561_data_p->gain = TSL2561_GAIN_16X; |
} |
void LUX_Begin(void) { |
} |
/PIC Stuff/PIC_27J13/lux_TSL2561.h |
---|
0,0 → 1,131 |
#ifndef LUX_TSL2561_H |
#define LUX_TSL2561_H |
#define TSL2561_VISIBLE 2 // channel 0 - channel 1 |
#define TSL2561_INFRARED 1 // channel 1 |
#define TSL2561_FULLSPECTRUM 0 // channel 0 |
// 3 i2c address options! |
#define TSL2561_ADDR_LOW 0x29 |
#define TSL2561_ADDR_FLOAT 0x39 |
#define TSL2561_ADDR_HIGH 0x49 |
// Lux calculations differ slightly for CS package |
//#define TSL2561_PACKAGE_CS |
#define TSL2561_PACKAGE_T_FN_CL |
#define TSL2561_READBIT (0x01) |
#define TSL2561_COMMAND_BIT (0x80) // Must be 1 |
#define TSL2561_CLEAR_BIT (0x40) // Clears any pending interrupt (write 1 to clear) |
#define TSL2561_WORD_BIT (0x20) // 1 = read/write word (rather than byte) |
#define TSL2561_BLOCK_BIT (0x10) // 1 = using block read/write |
#define TSL2561_CONTROL_POWERON (0x03) |
#define TSL2561_CONTROL_POWEROFF (0x00) |
#define TSL2561_LUX_LUXSCALE (14) // Scale by 2^14 |
#define TSL2561_LUX_RATIOSCALE (9) // Scale ratio by 2^9 |
#define TSL2561_LUX_CHSCALE (10) // Scale channel values by 2^10 |
#define TSL2561_LUX_CHSCALE_TINT0 (0x7517) // 322/11 * 2^TSL2561_LUX_CHSCALE |
#define TSL2561_LUX_CHSCALE_TINT1 (0x0FE7) // 322/81 * 2^TSL2561_LUX_CHSCALE |
// T, FN and CL package values |
#define TSL2561_LUX_K1T (0x0040) // 0.125 * 2^RATIO_SCALE |
#define TSL2561_LUX_B1T (0x01f2) // 0.0304 * 2^LUX_SCALE |
#define TSL2561_LUX_M1T (0x01be) // 0.0272 * 2^LUX_SCALE |
#define TSL2561_LUX_K2T (0x0080) // 0.250 * 2^RATIO_SCALE |
#define TSL2561_LUX_B2T (0x0214) // 0.0325 * 2^LUX_SCALE |
#define TSL2561_LUX_M2T (0x02d1) // 0.0440 * 2^LUX_SCALE |
#define TSL2561_LUX_K3T (0x00c0) // 0.375 * 2^RATIO_SCALE |
#define TSL2561_LUX_B3T (0x023f) // 0.0351 * 2^LUX_SCALE |
#define TSL2561_LUX_M3T (0x037b) // 0.0544 * 2^LUX_SCALE |
#define TSL2561_LUX_K4T (0x0100) // 0.50 * 2^RATIO_SCALE |
#define TSL2561_LUX_B4T (0x0270) // 0.0381 * 2^LUX_SCALE |
#define TSL2561_LUX_M4T (0x03fe) // 0.0624 * 2^LUX_SCALE |
#define TSL2561_LUX_K5T (0x0138) // 0.61 * 2^RATIO_SCALE |
#define TSL2561_LUX_B5T (0x016f) // 0.0224 * 2^LUX_SCALE |
#define TSL2561_LUX_M5T (0x01fc) // 0.0310 * 2^LUX_SCALE |
#define TSL2561_LUX_K6T (0x019a) // 0.80 * 2^RATIO_SCALE |
#define TSL2561_LUX_B6T (0x00d2) // 0.0128 * 2^LUX_SCALE |
#define TSL2561_LUX_M6T (0x00fb) // 0.0153 * 2^LUX_SCALE |
#define TSL2561_LUX_K7T (0x029a) // 1.3 * 2^RATIO_SCALE |
#define TSL2561_LUX_B7T (0x0018) // 0.00146 * 2^LUX_SCALE |
#define TSL2561_LUX_M7T (0x0012) // 0.00112 * 2^LUX_SCALE |
#define TSL2561_LUX_K8T (0x029a) // 1.3 * 2^RATIO_SCALE |
#define TSL2561_LUX_B8T (0x0000) // 0.000 * 2^LUX_SCALE |
#define TSL2561_LUX_M8T (0x0000) // 0.000 * 2^LUX_SCALE |
// CS package values |
#define TSL2561_LUX_K1C (0x0043) // 0.130 * 2^RATIO_SCALE |
#define TSL2561_LUX_B1C (0x0204) // 0.0315 * 2^LUX_SCALE |
#define TSL2561_LUX_M1C (0x01ad) // 0.0262 * 2^LUX_SCALE |
#define TSL2561_LUX_K2C (0x0085) // 0.260 * 2^RATIO_SCALE |
#define TSL2561_LUX_B2C (0x0228) // 0.0337 * 2^LUX_SCALE |
#define TSL2561_LUX_M2C (0x02c1) // 0.0430 * 2^LUX_SCALE |
#define TSL2561_LUX_K3C (0x00c8) // 0.390 * 2^RATIO_SCALE |
#define TSL2561_LUX_B3C (0x0253) // 0.0363 * 2^LUX_SCALE |
#define TSL2561_LUX_M3C (0x0363) // 0.0529 * 2^LUX_SCALE |
#define TSL2561_LUX_K4C (0x010a) // 0.520 * 2^RATIO_SCALE |
#define TSL2561_LUX_B4C (0x0282) // 0.0392 * 2^LUX_SCALE |
#define TSL2561_LUX_M4C (0x03df) // 0.0605 * 2^LUX_SCALE |
#define TSL2561_LUX_K5C (0x014d) // 0.65 * 2^RATIO_SCALE |
#define TSL2561_LUX_B5C (0x0177) // 0.0229 * 2^LUX_SCALE |
#define TSL2561_LUX_M5C (0x01dd) // 0.0291 * 2^LUX_SCALE |
#define TSL2561_LUX_K6C (0x019a) // 0.80 * 2^RATIO_SCALE |
#define TSL2561_LUX_B6C (0x0101) // 0.0157 * 2^LUX_SCALE |
#define TSL2561_LUX_M6C (0x0127) // 0.0180 * 2^LUX_SCALE |
#define TSL2561_LUX_K7C (0x029a) // 1.3 * 2^RATIO_SCALE |
#define TSL2561_LUX_B7C (0x0037) // 0.00338 * 2^LUX_SCALE |
#define TSL2561_LUX_M7C (0x002b) // 0.00260 * 2^LUX_SCALE |
#define TSL2561_LUX_K8C (0x029a) // 1.3 * 2^RATIO_SCALE |
#define TSL2561_LUX_B8C (0x0000) // 0.000 * 2^LUX_SCALE |
#define TSL2561_LUX_M8C (0x0000) // 0.000 * 2^LUX_SCALE |
enum { |
TSL2561_REGISTER_CONTROL = 0x00, |
TSL2561_REGISTER_TIMING = 0x01, |
TSL2561_REGISTER_THRESHHOLDL_LOW = 0x02, |
TSL2561_REGISTER_THRESHHOLDL_HIGH = 0x03, |
TSL2561_REGISTER_THRESHHOLDH_LOW = 0x04, |
TSL2561_REGISTER_THRESHHOLDH_HIGH = 0x05, |
TSL2561_REGISTER_INTERRUPT = 0x06, |
TSL2561_REGISTER_CRC = 0x08, |
TSL2561_REGISTER_ID = 0x0A, |
TSL2561_REGISTER_CHAN0_LOW = 0x0C, |
TSL2561_REGISTER_CHAN0_HIGH = 0x0D, |
TSL2561_REGISTER_CHAN1_LOW = 0x0E, |
TSL2561_REGISTER_CHAN1_HIGH = 0x0F |
}; |
typedef enum { |
TSL2561_INTEGRATIONTIME_13MS = 0x00, // 13.7ms |
TSL2561_INTEGRATIONTIME_101MS = 0x01, // 101ms |
TSL2561_INTEGRATIONTIME_402MS = 0x02 // 402ms |
} |
tsl2561IntegrationTime_t; |
typedef enum { |
TSL2561_GAIN_0X = 0x00, // No gain |
TSL2561_GAIN_16X = 0x10 // 16x gain |
} |
tsl2561Gain_t; |
typedef struct __TSL25611_DATA { |
unsigned char address; |
tsl2561IntegrationTime_t integration; |
tsl2561Gain_t gain; |
} TSL2561_DATA; |
void LUX_Init(void); |
void LUX_Begin(void); |
void LUX_Enable(void); |
void LUX_Disable(void); |
unsigned long LUX_CalculateLux(unsigned int ch0, unsigned int ch1); |
void LUX_SetTiming(tsl2561IntegrationTime_t integration); |
void LUX_SetGain(tsl2561Gain_t gain); |
unsigned int LUX_GetLuminosity(unsigned char channel); |
unsigned long LUX_GetFullLuminosity(void); |
#endif /* LUX_TSL2561_H */ |
/PIC Stuff/PIC_27J13/main.c |
---|
1,19 → 1,18 |
#include "maindefs.h" |
#include "defines.h" |
#include "interrupts.h" |
#include "uart.h" |
#include "i2c.h" |
#include "spi.h" |
#include "nfc.h" |
#include "led_backpack.h" |
#include "led_HT16K33.h" |
#include "oled_ssd1306.h" |
#include "oled_ssd1331.h" |
#include "adc.h" |
#include "xbee.h" |
#include "timers.h" |
#include <delays.h> |
#include <string.h> |
#pragma config WDTEN = OFF // Turn off watchdog timer |
#pragma config XINST = OFF // Turn off extended instruction set |
#ifdef USE_EXT_OSC |
#pragma config OSC = HSPLL // Use external oscillator (101) |
#pragma config PLLDIV = 3 // Set PPL prescaler to 3 (to get 4MHz) |
21,9 → 20,12 |
#pragma config OSC = INTOSCPLL // Use internal oscillator |
#pragma config PLLDIV = 2 // Set PPL prescaler to 2 (to get 4MHz) |
#endif |
#pragma config WDTEN = OFF // Turn off watchdog timer |
#pragma config XINST = OFF // Turn off extended instruction set |
#pragma config CFGPLLEN = ON // Enable PLL on startup |
#pragma config PLLSEL = PLL96 // Use 96MHz PLL 4MHz -> 96MHz / 2 = 48MHz |
//#pragma config SOSCSEL = HIGH // High Power T1OSC/SOSC circuit selected |
#pragma config SOSCSEL = LOW // Low Power T1OSC/SOSC circuit selected |
//#pragma config ADCSEL = BIT12 // 12-bit ADrC |
//#pragma config IOL1WAY = OFF // IOLOCK bit can be set and cleared as needed |
84,7 → 86,7 |
UART1_Init(); // Initialize the UART handler code |
I2C_Init(); // Initialize the I2C handler code |
I2C_Configure_Master(); |
I2C_Configure_Master(I2C_100KHZ); |
interrupt_enable(); // Enable high-priority interrupts and low-priority interrupts |
interrupt_init(); // Initialize the interrupt priorities |
93,9 → 95,9 |
while (1) { |
buffer[0] = 0xBB; |
buffer[0] = 0x8; |
I2C_Master_Send(0x30, 1, buffer); |
I2C_Master_Send(0x24, 1, buffer); |
result = I2C_Get_Status(); |
while (!result) { |
result = I2C_Get_Status(); |
102,7 → 104,7 |
} |
DBG_PRINT_MAIN("S:%X ", result); |
I2C_Master_Recv(0x30, 2); |
I2C_Master_Recv(0x24, 2); |
result = I2C_Get_Status(); |
while (!result) { |
result = I2C_Get_Status(); |
114,17 → 116,17 |
DBG_PRINT_MAIN("%c ", buffer[i]); |
} |
I2C_Master_Restart(0x30, 0xBB, 2); |
result = I2C_Get_Status(); |
while (!result) { |
result = I2C_Get_Status(); |
} |
DBG_PRINT_MAIN("S:%X ", result); |
length = I2C_Read_Buffer(buffer); |
DBG_PRINT_MAIN("L:%d D:", length); |
for (i = 0; i < length; i++) { |
DBG_PRINT_MAIN("%c ", buffer[i]); |
} |
// I2C_Master_Restart(0x30, 0xBB, 2); |
// result = I2C_Get_Status(); |
// while (!result) { |
// result = I2C_Get_Status(); |
// } |
// DBG_PRINT_MAIN("S:%X ", result); |
// length = I2C_Read_Buffer(buffer); |
// DBG_PRINT_MAIN("L:%d D:", length); |
// for (i = 0; i < length; i++) { |
// DBG_PRINT_MAIN("%c ", buffer[i]); |
// } |
DBG_PRINT_MAIN("\r\n"); |
155,7 → 157,7 |
UART1_Init(); // Initialize the UART handler code |
I2C_Init(); // Initialize the I2C handler code |
I2C_Configure_Slave(0x30); |
I2C_Configure_Slave(0x24); |
interrupt_enable(); // Enable high-priority interrupts and low-priority interrupts |
interrupt_init(); // Initialize the interrupt priorities |
333,8 → 335,6 |
void main(void) { |
unsigned char i = 0; |
unsigned char length = 0; |
unsigned char buffer[100]; |
unsigned int counter = 0; |
/* --------------------- Oscillator Configuration --------------------- */ |
451,7 → 451,7 |
ANCON1 = 0x1F; |
UART1_Init(); // Initialize the UART handler code |
SPI2_Init(SPI2_FOSC_8); // Initialize the SPI module |
SPI2_Init(SPI2_FOSC_4); // Initialize the SPI module |
SSD1306_Init(); // Initialize the OLED code |
interrupt_enable(); // Enable high-priority interrupts and low-priority interrupts |
569,7 → 569,7 |
ANCON1 = 0x1F; |
UART1_Init(); // Initialize the UART handler code |
SPI2_Init(SPI2_FOSC_8); // Initialize the SPI module |
SPI2_Init(SPI2_FOSC_64); // Initialize the SPI module |
SSD1331_Init(); // Initialize the OLED code |
interrupt_enable(); // Enable high-priority interrupts and low-priority interrupts |
578,7 → 578,7 |
DBG_PRINT_MAIN("\r\nBegin Program\r\n"); |
SSD1331_Begin(); |
while (1) { |
Delay10KTCYx(255); |
591,89 → 591,89 |
SSD1331_Clear_Display(); |
SSD1331_Set_Rotation(0); |
SSD1331_Set_Cursor(0, 0); |
SSD1331_Write_String("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur adipiscing ante sed nibh tincidunt feugiat. Maecenas enim massa"); |
SSD1331_Write_String("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabit adipiscing ante sed nibh tincidunt feugiat."); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Clear_Display(); |
SSD1331_Set_Rotation(3); |
SSD1331_Set_Cursor(0, 0); |
SSD1331_Write_String("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur adipiscing ante sed nibh tincidunt feugiat. Maecenas enim massa"); |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Clear_Display(); |
// SSD1331_Set_Rotation(3); |
// SSD1331_Set_Cursor(0, 0); |
// SSD1331_Write_String("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur adipiscing ante sed nibh tincidunt feugiat. Maecenas enim massa"); |
// |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(0); |
// SSD1331_Test_DrawLines(SSD1331_YELLOW); |
// |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(3); |
// SSD1331_Test_DrawLines(SSD1331_BLUE); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(0); |
SSD1331_Test_DrawLines(SSD1331_YELLOW); |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(0); |
// SSD1331_Test_DrawRect(SSD1331_GREEN); |
// |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(1); |
// SSD1331_Test_DrawRect(SSD1331_RED); |
// |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(2); |
// SSD1331_Test_DrawRect(SSD1331_BLUE); |
// |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(3); |
// SSD1331_Test_DrawRect(SSD1331_YELLOW); |
// |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(0); |
// SSD1331_Test_FillRect(SSD1331_YELLOW, SSD1331_MAGENTA); |
// |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(3); |
// SSD1331_Test_FillRect(SSD1331_BLUE, SSD1331_GREEN); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(3); |
SSD1331_Test_DrawLines(SSD1331_BLUE); |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(0); |
// SSD1331_Clear_Display(); |
// SSD1331_Test_FillCircle(10, SSD1331_BLUE); |
// SSD1331_Test_DrawCircle(10, SSD1331_WHITE); |
// |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(3); |
// SSD1331_Clear_Display(); |
// SSD1331_Test_FillCircle(10, SSD1331_MAGENTA); |
// SSD1331_Test_DrawCircle(10, SSD1331_YELLOW); |
// |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(0); |
// SSD1331_Test_DrawTria(); |
// |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(3); |
// SSD1331_Test_DrawTria(); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(0); |
SSD1331_Test_DrawRect(SSD1331_GREEN); |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(0); |
// SSD1331_Test_DrawRoundRect(); |
// |
// Delay10KTCYx(255); |
// Delay10KTCYx(255); |
// SSD1331_Set_Rotation(3); |
// SSD1331_Test_DrawRoundRect(); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(1); |
SSD1331_Test_DrawRect(SSD1331_RED); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(2); |
SSD1331_Test_DrawRect(SSD1331_BLUE); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(3); |
SSD1331_Test_DrawRect(SSD1331_YELLOW); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(0); |
SSD1331_Test_FillRect(SSD1331_YELLOW, SSD1331_MAGENTA); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(3); |
SSD1331_Test_FillRect(SSD1331_BLUE, SSD1331_GREEN); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(0); |
SSD1331_Clear_Display(); |
SSD1331_Test_FillCircle(10, SSD1331_BLUE); |
SSD1331_Test_DrawCircle(10, SSD1331_WHITE); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(3); |
SSD1331_Clear_Display(); |
SSD1331_Test_FillCircle(10, SSD1331_MAGENTA); |
SSD1331_Test_DrawCircle(10, SSD1331_YELLOW); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(0); |
SSD1331_Test_DrawTria(); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(3); |
SSD1331_Test_DrawTria(); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(0); |
SSD1331_Test_DrawRoundRect(); |
Delay10KTCYx(255); |
Delay10KTCYx(255); |
SSD1331_Set_Rotation(3); |
SSD1331_Test_DrawRoundRect(); |
// SSD1331_Clear_Display(); |
// SSD1331_Set_Rotation(3); |
// SSD1331_Set_Cursor(0,0); |
904,11 → 904,7 |
} |
#endif |
#if !defined(_TEST_UART) && !defined(_TEST_I2C_MASTER) && \ |
!defined(_TEST_I2C_SLAVE) && !defined(_TEST_SPI) && \ |
!defined(_TEST_NFC) && !defined(_TEST_LED_BACKPACK) && \ |
!defined(_TEST_SSD1306_OLED) && !defined(_TEST_SSD1331_OLED) && \ |
!defined(_TEST_ADC) && !defined(_TEST_XBEE) |
#ifdef _TEST_NFC_TO_SSD1306_OLED |
void main(void) { |
unsigned char length = 0; |
931,7 → 927,7 |
UART1_Init(); |
I2C_Init(); |
NFC_Init(); |
SPI2_Init(SPI2_FOSC_8); |
SPI2_Init(SPI2_FOSC_4); |
SSD1306_Init(); |
I2C_Configure_Master(I2C_400KHZ); |
1007,3 → 1003,100 |
} |
} |
#endif |
#ifdef _TEST_TIMER1_RTC |
void main(void) { |
/* --------------------- Oscillator Configuration --------------------- */ |
// OSCTUNEbits.PLLEN = 1; // Enable 4x PLL |
OSCCONbits.IRCF = 0b111; // Set INTOSC postscaler to 8MHz |
OSCCONbits.SCS = 0b00; // Use 96MHz PLL as primary clock source |
/* -------------------------------------------------------------------- */ |
// Set all ports as digial I/O except for AN0-AN2 (pins 2-4) |
ANCON0 = 0xF8; |
ANCON1 = 0x1F; |
Timer1_Init(); |
interrupt_enable(); // Enable high-priority interrupts and low-priority interrupts |
interrupt_init(); // Initialize the interrupt priorities |
LED_BLUE_TRIS = 0; |
LED_RED_TRIS = 0; |
Timer1_Enable(); |
while (1) { |
} |
} |
#endif |
#ifdef _TEST_LUX |
void main(void) { |
/* --------------------- Oscillator Configuration --------------------- */ |
// OSCTUNEbits.PLLEN = 1; // Enable 4x PLL |
OSCCONbits.IRCF = 0b111; // Set INTOSC postscaler to 8MHz |
OSCCONbits.SCS = 0b00; // Use 96MHz PLL as primary clock source |
/* -------------------------------------------------------------------- */ |
// Set all ports as digial I/O except for AN0-AN2 (pins 2-4) |
ANCON0 = 0xF8; |
ANCON1 = 0x1F; |
UART1_Init(); |
I2C_Init(); |
I2C_Configure_Master(I2C_100KHZ); |
interrupt_enable(); // Enable high-priority interrupts and low-priority interrupts |
interrupt_init(); // Initialize the interrupt priorities |
while (1) { |
} |
} |
#endif |
#if !defined(_TEST_UART) && !defined(_TEST_I2C_MASTER) && \ |
!defined(_TEST_I2C_SLAVE) && !defined(_TEST_SPI) && \ |
!defined(_TEST_NFC) && !defined(_TEST_LED_BACKPACK) && \ |
!defined(_TEST_SSD1306_OLED) && !defined(_TEST_SSD1331_OLED) && \ |
!defined(_TEST_ADC) && !defined(_TEST_XBEE) && \ |
!defined(_TEST_NFC_TO_SSD1306_OLED) && !defined(_TEST_TIMER1_RTC) && \ |
!defined(_TEST_LUX) |
void main(void) { |
/* --------------------- Oscillator Configuration --------------------- */ |
// OSCTUNEbits.PLLEN = 1; // Enable 4x PLL |
OSCCONbits.IRCF = 0b111; // Set INTOSC postscaler to 8MHz |
OSCCONbits.SCS = 0b00; // Use 96MHz PLL as primary clock source |
/* -------------------------------------------------------------------- */ |
// Set all ports as digial I/O except for AN0-AN2 (pins 2-4) |
ANCON0 = 0xF8; |
ANCON1 = 0x1F; |
UART1_Init(); |
Timer1_Init(); |
interrupt_enable(); // Enable high-priority interrupts and low-priority interrupts |
interrupt_init(); // Initialize the interrupt priorities |
LED_BLUE_TRIS = 0; |
LED_RED_TRIS = 0; |
Timer1_Enable(); |
DBG_PRINT_MAIN("\r\nBegin Program\r\n"); |
while (1) { |
} |
} |
#endif |
/PIC Stuff/PIC_27J13/nbproject/Makefile-default.mk |
---|
8,11 → 8,15 |
# Include project Makefile |
ifeq "${IGNORE_LOCAL}" "TRUE" |
# do not include local makefile. User is passing all local related variables already |
else |
include Makefile |
# Include makefile containing local settings |
ifeq "$(wildcard nbproject/Makefile-local-default.mk)" "nbproject/Makefile-local-default.mk" |
include nbproject/Makefile-local-default.mk |
endif |
endif |
# Environment |
MKDIR=gnumkdir -p |
41,11 → 45,11 |
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE} |
# Object Files Quoted if spaced |
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/main.o ${OBJECTDIR}/i2c.o ${OBJECTDIR}/interrupts.o ${OBJECTDIR}/led_backpack.o ${OBJECTDIR}/nfc.o ${OBJECTDIR}/spi.o ${OBJECTDIR}/uart.o ${OBJECTDIR}/oled_ssd1306.o ${OBJECTDIR}/glcdfont.o ${OBJECTDIR}/adc.o ${OBJECTDIR}/xbee.o ${OBJECTDIR}/oled_ssd1331.o |
POSSIBLE_DEPFILES=${OBJECTDIR}/main.o.d ${OBJECTDIR}/i2c.o.d ${OBJECTDIR}/interrupts.o.d ${OBJECTDIR}/led_backpack.o.d ${OBJECTDIR}/nfc.o.d ${OBJECTDIR}/spi.o.d ${OBJECTDIR}/uart.o.d ${OBJECTDIR}/oled_ssd1306.o.d ${OBJECTDIR}/glcdfont.o.d ${OBJECTDIR}/adc.o.d ${OBJECTDIR}/xbee.o.d ${OBJECTDIR}/oled_ssd1331.o.d |
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/main.o ${OBJECTDIR}/i2c.o ${OBJECTDIR}/interrupts.o ${OBJECTDIR}/nfc.o ${OBJECTDIR}/spi.o ${OBJECTDIR}/uart.o ${OBJECTDIR}/oled_ssd1306.o ${OBJECTDIR}/glcdfont.o ${OBJECTDIR}/adc.o ${OBJECTDIR}/xbee.o ${OBJECTDIR}/oled_ssd1331.o ${OBJECTDIR}/timers.o ${OBJECTDIR}/led_HT16K33.o ${OBJECTDIR}/lux_TSL2561.o |
POSSIBLE_DEPFILES=${OBJECTDIR}/main.o.d ${OBJECTDIR}/i2c.o.d ${OBJECTDIR}/interrupts.o.d ${OBJECTDIR}/nfc.o.d ${OBJECTDIR}/spi.o.d ${OBJECTDIR}/uart.o.d ${OBJECTDIR}/oled_ssd1306.o.d ${OBJECTDIR}/glcdfont.o.d ${OBJECTDIR}/adc.o.d ${OBJECTDIR}/xbee.o.d ${OBJECTDIR}/oled_ssd1331.o.d ${OBJECTDIR}/timers.o.d ${OBJECTDIR}/led_HT16K33.o.d ${OBJECTDIR}/lux_TSL2561.o.d |
# Object Files |
OBJECTFILES=${OBJECTDIR}/main.o ${OBJECTDIR}/i2c.o ${OBJECTDIR}/interrupts.o ${OBJECTDIR}/led_backpack.o ${OBJECTDIR}/nfc.o ${OBJECTDIR}/spi.o ${OBJECTDIR}/uart.o ${OBJECTDIR}/oled_ssd1306.o ${OBJECTDIR}/glcdfont.o ${OBJECTDIR}/adc.o ${OBJECTDIR}/xbee.o ${OBJECTDIR}/oled_ssd1331.o |
OBJECTFILES=${OBJECTDIR}/main.o ${OBJECTDIR}/i2c.o ${OBJECTDIR}/interrupts.o ${OBJECTDIR}/nfc.o ${OBJECTDIR}/spi.o ${OBJECTDIR}/uart.o ${OBJECTDIR}/oled_ssd1306.o ${OBJECTDIR}/glcdfont.o ${OBJECTDIR}/adc.o ${OBJECTDIR}/xbee.o ${OBJECTDIR}/oled_ssd1331.o ${OBJECTDIR}/timers.o ${OBJECTDIR}/led_HT16K33.o ${OBJECTDIR}/lux_TSL2561.o |
CFLAGS= |
62,7 → 66,7 |
FIXDEPS=fixDeps |
.build-conf: ${BUILD_SUBPROJECTS} |
${MAKE} -f nbproject/Makefile-default.mk dist/${CND_CONF}/${IMAGE_TYPE}/PIC_27J13.${IMAGE_TYPE}.${OUTPUT_SUFFIX} |
${MAKE} ${MAKE_OPTIONS} -f nbproject/Makefile-default.mk dist/${CND_CONF}/${IMAGE_TYPE}/PIC_27J13.${IMAGE_TYPE}.${OUTPUT_SUFFIX} |
MP_PROCESSOR_OPTION=18F27J13 |
MP_PROCESSOR_OPTION_LD=18f27j13 |
79,158 → 83,210 |
${OBJECTDIR}/main.o: main.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/main.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/main.o main.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/main.o main.c |
@${DEP_GEN} -d ${OBJECTDIR}/main.o |
@${FIXDEPS} "${OBJECTDIR}/main.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/i2c.o: i2c.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/i2c.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/i2c.o i2c.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/i2c.o i2c.c |
@${DEP_GEN} -d ${OBJECTDIR}/i2c.o |
@${FIXDEPS} "${OBJECTDIR}/i2c.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/interrupts.o: interrupts.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/interrupts.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/interrupts.o interrupts.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/interrupts.o interrupts.c |
@${DEP_GEN} -d ${OBJECTDIR}/interrupts.o |
@${FIXDEPS} "${OBJECTDIR}/interrupts.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/led_backpack.o: led_backpack.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/led_backpack.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/led_backpack.o led_backpack.c |
@${DEP_GEN} -d ${OBJECTDIR}/led_backpack.o |
${OBJECTDIR}/nfc.o: nfc.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/nfc.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/nfc.o nfc.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/nfc.o nfc.c |
@${DEP_GEN} -d ${OBJECTDIR}/nfc.o |
@${FIXDEPS} "${OBJECTDIR}/nfc.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/spi.o: spi.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/spi.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/spi.o spi.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/spi.o spi.c |
@${DEP_GEN} -d ${OBJECTDIR}/spi.o |
@${FIXDEPS} "${OBJECTDIR}/spi.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/uart.o: uart.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/uart.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/uart.o uart.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/uart.o uart.c |
@${DEP_GEN} -d ${OBJECTDIR}/uart.o |
@${FIXDEPS} "${OBJECTDIR}/uart.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/oled_ssd1306.o: oled_ssd1306.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/oled_ssd1306.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/oled_ssd1306.o oled_ssd1306.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/oled_ssd1306.o oled_ssd1306.c |
@${DEP_GEN} -d ${OBJECTDIR}/oled_ssd1306.o |
@${FIXDEPS} "${OBJECTDIR}/oled_ssd1306.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/glcdfont.o: glcdfont.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/glcdfont.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/glcdfont.o glcdfont.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/glcdfont.o glcdfont.c |
@${DEP_GEN} -d ${OBJECTDIR}/glcdfont.o |
@${FIXDEPS} "${OBJECTDIR}/glcdfont.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/adc.o: adc.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/adc.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/adc.o adc.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/adc.o adc.c |
@${DEP_GEN} -d ${OBJECTDIR}/adc.o |
@${FIXDEPS} "${OBJECTDIR}/adc.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/xbee.o: xbee.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/xbee.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/xbee.o xbee.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/xbee.o xbee.c |
@${DEP_GEN} -d ${OBJECTDIR}/xbee.o |
@${FIXDEPS} "${OBJECTDIR}/xbee.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/oled_ssd1331.o: oled_ssd1331.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/oled_ssd1331.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/oled_ssd1331.o oled_ssd1331.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/oled_ssd1331.o oled_ssd1331.c |
@${DEP_GEN} -d ${OBJECTDIR}/oled_ssd1331.o |
@${FIXDEPS} "${OBJECTDIR}/oled_ssd1331.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/timers.o: timers.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/timers.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/timers.o timers.c |
@${DEP_GEN} -d ${OBJECTDIR}/timers.o |
@${FIXDEPS} "${OBJECTDIR}/timers.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/led_HT16K33.o: led_HT16K33.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/led_HT16K33.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/led_HT16K33.o led_HT16K33.c |
@${DEP_GEN} -d ${OBJECTDIR}/led_HT16K33.o |
@${FIXDEPS} "${OBJECTDIR}/led_HT16K33.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/lux_TSL2561.o: lux_TSL2561.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/lux_TSL2561.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/lux_TSL2561.o lux_TSL2561.c |
@${DEP_GEN} -d ${OBJECTDIR}/lux_TSL2561.o |
@${FIXDEPS} "${OBJECTDIR}/lux_TSL2561.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
else |
${OBJECTDIR}/main.o: main.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/main.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/main.o main.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/main.o main.c |
@${DEP_GEN} -d ${OBJECTDIR}/main.o |
@${FIXDEPS} "${OBJECTDIR}/main.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/i2c.o: i2c.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/i2c.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/i2c.o i2c.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/i2c.o i2c.c |
@${DEP_GEN} -d ${OBJECTDIR}/i2c.o |
@${FIXDEPS} "${OBJECTDIR}/i2c.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/interrupts.o: interrupts.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/interrupts.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/interrupts.o interrupts.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/interrupts.o interrupts.c |
@${DEP_GEN} -d ${OBJECTDIR}/interrupts.o |
@${FIXDEPS} "${OBJECTDIR}/interrupts.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/led_backpack.o: led_backpack.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/led_backpack.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/led_backpack.o led_backpack.c |
@${DEP_GEN} -d ${OBJECTDIR}/led_backpack.o |
${OBJECTDIR}/nfc.o: nfc.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/nfc.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/nfc.o nfc.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/nfc.o nfc.c |
@${DEP_GEN} -d ${OBJECTDIR}/nfc.o |
@${FIXDEPS} "${OBJECTDIR}/nfc.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/spi.o: spi.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/spi.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/spi.o spi.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/spi.o spi.c |
@${DEP_GEN} -d ${OBJECTDIR}/spi.o |
@${FIXDEPS} "${OBJECTDIR}/spi.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/uart.o: uart.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/uart.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/uart.o uart.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/uart.o uart.c |
@${DEP_GEN} -d ${OBJECTDIR}/uart.o |
@${FIXDEPS} "${OBJECTDIR}/uart.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/oled_ssd1306.o: oled_ssd1306.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/oled_ssd1306.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/oled_ssd1306.o oled_ssd1306.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/oled_ssd1306.o oled_ssd1306.c |
@${DEP_GEN} -d ${OBJECTDIR}/oled_ssd1306.o |
@${FIXDEPS} "${OBJECTDIR}/oled_ssd1306.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/glcdfont.o: glcdfont.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/glcdfont.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/glcdfont.o glcdfont.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/glcdfont.o glcdfont.c |
@${DEP_GEN} -d ${OBJECTDIR}/glcdfont.o |
@${FIXDEPS} "${OBJECTDIR}/glcdfont.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/adc.o: adc.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/adc.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/adc.o adc.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/adc.o adc.c |
@${DEP_GEN} -d ${OBJECTDIR}/adc.o |
@${FIXDEPS} "${OBJECTDIR}/adc.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/xbee.o: xbee.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/xbee.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/xbee.o xbee.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/xbee.o xbee.c |
@${DEP_GEN} -d ${OBJECTDIR}/xbee.o |
@${FIXDEPS} "${OBJECTDIR}/xbee.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/oled_ssd1331.o: oled_ssd1331.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/oled_ssd1331.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -mL -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/oled_ssd1331.o oled_ssd1331.c |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/oled_ssd1331.o oled_ssd1331.c |
@${DEP_GEN} -d ${OBJECTDIR}/oled_ssd1331.o |
@${FIXDEPS} "${OBJECTDIR}/oled_ssd1331.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/timers.o: timers.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/timers.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/timers.o timers.c |
@${DEP_GEN} -d ${OBJECTDIR}/timers.o |
@${FIXDEPS} "${OBJECTDIR}/timers.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/led_HT16K33.o: led_HT16K33.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/led_HT16K33.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/led_HT16K33.o led_HT16K33.c |
@${DEP_GEN} -d ${OBJECTDIR}/led_HT16K33.o |
@${FIXDEPS} "${OBJECTDIR}/led_HT16K33.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
${OBJECTDIR}/lux_TSL2561.o: lux_TSL2561.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/lux_TSL2561.o.d |
${MP_CC} $(MP_EXTRA_CC_PRE) -p$(MP_PROCESSOR_OPTION) -oi -ml -oa- -I ${MP_CC_DIR}\\..\\h -fo ${OBJECTDIR}/lux_TSL2561.o lux_TSL2561.c |
@${DEP_GEN} -d ${OBJECTDIR}/lux_TSL2561.o |
@${FIXDEPS} "${OBJECTDIR}/lux_TSL2561.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c18 |
endif |
# ------------------------------------------------------------------------------------ |
# Rules for buildStep: link |
ifeq ($(TYPE_IMAGE), DEBUG_RUN) |
dist/${CND_CONF}/${IMAGE_TYPE}/PIC_27J13.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk |
dist/${CND_CONF}/${IMAGE_TYPE}/PIC_27J13.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk 18f27j13.lkr |
@${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} |
${MP_LD} $(MP_EXTRA_LD_PRE) "18f27j13.lkr" -p$(MP_PROCESSOR_OPTION_LD) -w -x -u_DEBUG -z__MPLAB_BUILD=1 -u_CRUNTIME -z__MPLAB_DEBUG=1 -z__MPLAB_DEBUGGER_PK3=1 $(MP_LINKER_DEBUG_OPTION) -l ${MP_CC_DIR}\\..\\lib -o dist/${CND_CONF}/${IMAGE_TYPE}/PIC_27J13.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} |
else |
dist/${CND_CONF}/${IMAGE_TYPE}/PIC_27J13.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk |
dist/${CND_CONF}/${IMAGE_TYPE}/PIC_27J13.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk 18f27j13.lkr |
@${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} |
${MP_LD} $(MP_EXTRA_LD_PRE) "18f27j13.lkr" -p$(MP_PROCESSOR_OPTION_LD) -w -z__MPLAB_BUILD=1 -u_CRUNTIME -l ${MP_CC_DIR}\\..\\lib -o dist/${CND_CONF}/${IMAGE_TYPE}/PIC_27J13.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} |
endif |
/PIC Stuff/PIC_27J13/nbproject/Makefile-genesis.properties |
---|
1,8 → 1,8 |
# |
#Sun Aug 05 15:34:42 EDT 2012 |
default.com-microchip-mplab-nbide-toolchainC18-C18LanguageToolchain.md5=fd3c294f650afc344cfb0579847b1618 |
#Thu Dec 20 15:51:53 EST 2012 |
default.com-microchip-mplab-nbide-toolchainC18-C18LanguageToolchain.md5=e4cd2f1e5bba11c8ba952dafee98d887 |
default.languagetoolchain.dir=C\:\\Program Files (x86)\\Microchip\\mplabc18\\v3.42\\bin |
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=39edbdd4b2849b7912992109f4b86781 |
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=d94e033fce233e60ccb9abf3a212a9b7 |
default.languagetoolchain.version=3.42 |
host.platform=windows |
conf.ids=default |
/PIC Stuff/PIC_27J13/nbproject/Makefile-local-default.mk |
---|
22,6 → 22,7 |
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\mplabc18\v3.42\bin\mcc18.exe" |
# MP_CPPC is not defined |
# MP_BC is not defined |
MP_AS="C:\Program Files (x86)\Microchip\mplabc18\v3.42\bin\..\mpasm\MPASMWIN.exe" |
MP_LD="C:\Program Files (x86)\Microchip\mplabc18\v3.42\bin\mplink.exe" |
28,6 → 29,7 |
MP_AR="C:\Program Files (x86)\Microchip\mplabc18\v3.42\bin\mplib.exe" |
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\mplabc18\v3.42\bin" |
# MP_CPPC_DIR is not defined |
# MP_BC_DIR is not defined |
MP_AS_DIR="C:\Program Files (x86)\Microchip\mplabc18\v3.42\bin\..\mpasm" |
MP_LD_DIR="C:\Program Files (x86)\Microchip\mplabc18\v3.42\bin" |
/PIC Stuff/PIC_27J13/nbproject/configurations.xml |
---|
6,8 → 6,6 |
projectFiles="true"> |
<itemPath>i2c.h</itemPath> |
<itemPath>interrupts.h</itemPath> |
<itemPath>led_backpack.h</itemPath> |
<itemPath>maindefs.h</itemPath> |
<itemPath>nfc.h</itemPath> |
<itemPath>spi.h</itemPath> |
<itemPath>uart.h</itemPath> |
15,6 → 13,10 |
<itemPath>adc.h</itemPath> |
<itemPath>xbee.h</itemPath> |
<itemPath>oled_ssd1331.h</itemPath> |
<itemPath>defines.h</itemPath> |
<itemPath>timers.h</itemPath> |
<itemPath>led_HT16K33.h</itemPath> |
<itemPath>lux_TSL2561.h</itemPath> |
</logicalFolder> |
<logicalFolder name="LibraryFiles" |
displayName="Library Files" |
35,7 → 37,6 |
<itemPath>main.c</itemPath> |
<itemPath>i2c.c</itemPath> |
<itemPath>interrupts.c</itemPath> |
<itemPath>led_backpack.c</itemPath> |
<itemPath>nfc.c</itemPath> |
<itemPath>spi.c</itemPath> |
<itemPath>uart.c</itemPath> |
44,6 → 45,9 |
<itemPath>adc.c</itemPath> |
<itemPath>xbee.c</itemPath> |
<itemPath>oled_ssd1331.c</itemPath> |
<itemPath>timers.c</itemPath> |
<itemPath>led_HT16K33.c</itemPath> |
<itemPath>lux_TSL2561.c</itemPath> |
</logicalFolder> |
<logicalFolder name="ExternalFiles" |
displayName="Important Files" |
58,9 → 62,10 |
<developmentServer>localhost</developmentServer> |
<targetDevice>PIC18F27J13</targetDevice> |
<targetHeader></targetHeader> |
<targetPluginBoard></targetPluginBoard> |
<platformTool>PICkit3PlatformTool</platformTool> |
<languageToolchain>C18</languageToolchain> |
<languageToolchainVersion>3.40</languageToolchainVersion> |
<languageToolchainVersion>3.42</languageToolchainVersion> |
<platform>3</platform> |
</toolsSet> |
<compileType> |
83,8 → 88,8 |
<makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile> |
</makeCustomizationType> |
<C18> |
<property key="code-model" value="mL"/> |
<property key="data-model" value="Oa-"/> |
<property key="code-model" value="ml"/> |
<property key="data-model" value="oa-"/> |
<property key="default-char-unsigned" value="false"/> |
<property key="enable-all-optimizations" value="true"/> |
<property key="enable-int-promotion" value="true"/> |
140,6 → 145,8 |
<property key="ToolFirmwareOption.UseLatestFirmware" value="true"/> |
<property key="hwtoolclock.frcindebug" value="false"/> |
<property key="memories.aux" value="false"/> |
<property key="memories.bootflash" value="false"/> |
<property key="memories.configurationmemory" value="false"/> |
<property key="memories.eeprom" value="false"/> |
<property key="memories.flashdata" value="true"/> |
<property key="memories.id" value="false"/> |
149,6 → 156,7 |
<property key="poweroptions.powerenable" value="false"/> |
<property key="programmertogo.imagename" value=""/> |
<property key="programoptions.eraseb4program" value="true"/> |
<property key="programoptions.pgmspeed" value="2"/> |
<property key="programoptions.preserveeeprom" value="false"/> |
<property key="programoptions.preserveprogramrange" value="false"/> |
<property key="programoptions.preserveprogramrange.end" value="0x3f"/> |
/PIC Stuff/PIC_27J13/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\mplabc18\v3.40\bin</languageToolchainDir> |
<languageToolchainDir>C:\Program Files (x86)\Microchip\mplabc18\v3.42\bin</languageToolchainDir> |
<mdbdebugger version="1"> |
<placeholder1>place holder 1</placeholder1> |
<placeholder2>place holder 2</placeholder2> |
/PIC Stuff/PIC_27J13/nfc.c |
---|
1,4 → 1,4 |
#include "maindefs.h" |
#include "defines.h" |
#include "nfc.h" |
#include "i2c.h" |
#include <string.h> |
13,13 → 13,15 |
void NFC_Init() { |
NFC_IRQ_TRIS = 1; // IRQ Pin is RC5 |
NFC_RESET_TRIS = 0; // Reset Pin is RC2 |
// Reset the PN532 |
NFC_RESET_LAT = 1; |
NFC_RESET_LAT = 0; |
Delay10TCYx(1); |
NFC_RESET_LAT = 1; |
/* NFC reset is disabled due to lack of pins */ |
// NFC_RESET_TRIS = 0; // Reset Pin is RC2 |
// |
// // Reset the PN532 |
// NFC_RESET_LAT = 1; |
// NFC_RESET_LAT = 0; |
// Delay10TCYx(1); |
// NFC_RESET_LAT = 1; |
} |
// Configures the SAM (Secure Access Module) |
/PIC Stuff/PIC_27J13/oled_ssd1306.c |
---|
1,4 → 1,4 |
#include "maindefs.h" |
#include "defines.h" |
#include "oled_ssd1306.h" |
#include "spi.h" |
#include "string.h" |
/PIC Stuff/PIC_27J13/oled_ssd1331.c |
---|
1,4 → 1,4 |
#include "maindefs.h" |
#include "defines.h" |
#include "oled_ssd1331.h" |
#include "spi.h" |
#include "string.h" |
/PIC Stuff/PIC_27J13/oled_ssd1331.h |
---|
3,7 → 3,7 |
#define SSD1331_LCDWIDTH 96 |
#define SSD1331_LCDHEIGHT 64 |
#define SSD1331_STRING_BUFFER_SIZE 32 |
#define SSD1331_STRING_BUFFER_SIZE 64 |
// Select one of these defines to set the pixel color order |
#define SSD1331_COLORORDER_RGB |
/PIC Stuff/PIC_27J13/spi.c |
---|
1,4 → 1,4 |
#include "maindefs.h" |
#include "defines.h" |
#include "spi.h" |
static SPI_DATA spi_data; |
6,26 → 6,25 |
void SPI2_Init(unsigned char speed) { |
// Set up SPI2 with specified pins |
RPINR22 = PPS_SPI2_CLK_IN; // SPI2 CLK Input (Pin RB4) |
PPS_SPI2_CLK_OUT = 11; // SPI2 CLK Output (Pin RB4) |
#ifndef SPI2_WRITE_ONLY |
RPINR21 = PPS_SPI2_MISO; // SPI2 Data Input (Pin RB3) |
#endif |
PPS_SPI2_MOSI = 10; // SPI2 Data Output (MOSI) (Pin RB2) |
RPINR22 = PPS_SPI2_CLK_IN; // SPI2 CLK Input |
PPS_SPI2_CLK_OUT = 11; // SPI2 CLK Output |
SPI_CLK_TRIS = 0; // SPI2 clock pin (Pin RB4) |
#ifndef SPI2_WRITE_ONLY |
SPI_MISO_TRIS = 1; // SPI2 data in pin (Pin RB3)(MISO) |
RPINR21 = PPS_SPI2_MISO; // SPI2 Data Input |
SPI_MISO_TRIS = 1; // SPI2 data in pin (MISO) |
#endif |
SPI_MOSI_TRIS = 0; // SPI2 data out pin (Pin RB2)(MOSI) |
SPI_CLK_TRIS = 0; // SPI2 clock pin |
PPS_SPI2_MOSI = 10; // SPI2 Data Output (MOSI) |
SPI_MOSI_TRIS = 0; // SPI2 data out pin (MOSI) |
SPI_SLAVE_SELECT_TRIS = 0; // SPI2 slave select (Pin RB7) |
SPI_SLAVE_SELECT_TRIS = 0; // SPI2 slave select |
SPI_SLAVE_SELECT_LAT = 1; // SPI2 SS high (Idle) |
SPI_RESET_TRIS = 0; // SPI2 reset (Pin RB6) |
SPI_RESET_TRIS = 0; // SPI2 reset |
SPI_RESET_LAT = 1; // SPI2 reset active low |
SPI_DC_SELECT_TRIS = 0; // SPI2 D/C select (Pin RB5) |
SPI_DC_SELECT_TRIS = 0; // SPI2 D/C select |
SPI_DC_SELECT_LAT = 0; |
SSP2STATbits.SMP = 0; // Input is sampled in the middle of data output time |
42,43 → 41,15 |
PIE3bits.SSP2IE = 0; |
#endif |
#ifndef SPI2_WRITE_ONLY |
spi_data_p->buffer_in_len = 0; |
spi_data_p->buffer_in_read_ind = 0; |
spi_data_p->buffer_in_write_ind = 0; |
#endif |
spi_data_p->buffer_out_ind = 0; |
spi_data_p->buffer_out_len = 0; |
} |
void SPI2_Recv_Interrupt_Handler() { |
unsigned char c; |
if (SSP2STATbits.BF) { // Check if data receive flag is set |
if (spi_data_p->buffer_in_len == MAXSPIBUF - 1) { |
DBG_PRINT_SPI("SPI2: (ERROR) buffer overflow\r\n"); |
c = SSP2BUF; // Read SSP2BUF to clear it |
} else { |
// Save received data into buffer |
spi_data_p->buffer_in[spi_data_p->buffer_in_write_ind] = SSP2BUF; |
if (spi_data_p->buffer_in_write_ind == MAXSPIBUF - 1) { |
spi_data_p->buffer_in_write_ind = 0; |
} else { |
spi_data_p->buffer_in_write_ind++; |
} |
spi_data_p->buffer_in_len++; |
// Put next byte in SSP2BUF for transmit |
if (spi_data_p->buffer_out_ind != spi_data_p->buffer_out_len) { |
SSP2BUF = spi_data_p->buffer_out[spi_data_p->buffer_out_ind]; |
spi_data_p->buffer_out_ind++; |
} else { |
SPI_SLAVE_SELECT_LAT = 1; // Bring SS line high |
spi_data_p->buffer_out_ind = 0; |
spi_data_p->buffer_out_len = 0; |
} |
} |
} |
} |
void SPI2_Write(unsigned char *msg, unsigned int length) { |
#ifdef SPI2_USE_INTERRUPT |
unsigned char i; |
117,7 → 88,7 |
void SPI2_Write_Repeat(unsigned char c, unsigned int length) { |
#ifdef SPI2_USE_INTERRUPT |
// TODO |
// TODO Implement interrupts for SPI2 |
#else |
unsigned int i = 0; |
unsigned char tmp = 0; |
144,6 → 115,37 |
#endif |
} |
#ifndef SPI2_WRITE_ONLY |
void SPI2_Recv_Interrupt_Handler() { |
unsigned char c; |
if (SSP2STATbits.BF) { // Check if data receive flag is set |
if (spi_data_p->buffer_in_len == MAXSPIBUF - 1) { |
DBG_PRINT_SPI("SPI2: (ERROR) buffer overflow\r\n"); |
c = SSP2BUF; // Read SSP2BUF to clear it |
} else { |
// Save received data into buffer |
spi_data_p->buffer_in[spi_data_p->buffer_in_write_ind] = SSP2BUF; |
if (spi_data_p->buffer_in_write_ind == MAXSPIBUF - 1) { |
spi_data_p->buffer_in_write_ind = 0; |
} else { |
spi_data_p->buffer_in_write_ind++; |
} |
spi_data_p->buffer_in_len++; |
// Put next byte in SSP2BUF for transmit |
if (spi_data_p->buffer_out_ind != spi_data_p->buffer_out_len) { |
SSP2BUF = spi_data_p->buffer_out[spi_data_p->buffer_out_ind]; |
spi_data_p->buffer_out_ind++; |
} else { |
SPI_SLAVE_SELECT_LAT = 1; // Bring SS line high |
spi_data_p->buffer_out_ind = 0; |
spi_data_p->buffer_out_len = 0; |
} |
} |
} |
} |
void SPI2_Read(unsigned char length) { |
#ifdef SPI2_USE_INTERRUPT |
unsigned char i; |
191,4 → 193,5 |
spi_data_p->buffer_in_len--; |
} |
return i; |
} |
} |
#endif |
/PIC Stuff/PIC_27J13/spi.h |
---|
1,6 → 1,8 |
#ifndef SPI_H |
#define SPI_H |
#include "defines.h" |
#define MAXSPIBUF 64 |
// Option to use interrupt. If interrupt are used, SPI write does not block but |
7,9 → 9,6 |
// there is a longer delay between reading/writing data |
//#define SPI2_USE_INTERRUPT |
// Option to write only |
#define SPI2_WRITE_ONLY |
// SPI speed selection |
#define SPI2_FOSC_64 0b0010 |
#define SPI2_FOSC_16 0b0001 |
17,10 → 16,12 |
#define SPI2_FOSC_4 0b0000 |
typedef struct __SPI_DATA { |
#ifndef SPI2_WRITE_ONLY |
unsigned char buffer_in[MAXSPIBUF]; |
unsigned char buffer_in_read_ind; |
unsigned char buffer_in_write_ind; |
unsigned char buffer_in_len; |
#endif |
unsigned char buffer_out[MAXSPIBUF]; |
unsigned char buffer_out_ind; |
28,12 → 29,14 |
} SPI_DATA; |
void SPI2_Init(unsigned char speed); |
void SPI2_Recv_Interrupt_Handler(void); |
void SPI2_Write(unsigned char *msg, unsigned int length); |
void SPI2_Write_Repeat(unsigned char c, unsigned int length); |
#ifndef SPI2_WRITE_ONLY |
void SPI2_Recv_Interrupt_Handler(void); |
void SPI2_Read(unsigned char length); |
unsigned char SPI2_Buffer_Len(void); |
unsigned char SPI2_Read_Buffer(unsigned char *buffer); |
#endif |
#endif /* SPI_H */ |
/PIC Stuff/PIC_27J13/timers.c |
---|
1,57 → 1,35 |
/* The processor calls these handlers when an interrupt is triggered */ |
#include "maindefs.h" |
#include <timers.h> |
#include "defines.h" |
#include "timers.h" |
void timers_init() { |
/*--------------------Timer Delay Formulas-------------------- */ |
/* InitTMR0 = 256 - ( Delay * Frequency ) / ( 4* Prescaler) */ |
/* Delay = (256 - InitTMR0 * Prescaler) / (Frequency / 4) */ |
/* ----------------------------------------------------------- */ |
void Timer1_Init(void) { |
T1CONbits.TMR1CS = 0x2; // Clock source using T1OSC and T1CLK pins |
T1CONbits.RD16 = 0x1; // Configure for 16-bit read/writes |
T1CONbits.T1OSCEN = 0x1; // Enable crystal driver |
PIE1bits.TMR1IE = 0x1; // Enable interrupt |
OpenTimer0(TIMER_INT_ON & T0_16BIT & T0_SOURCE_INT & T0_PS_1_16); |
T0CONbits.TMR0ON = 0; // Timer 0 initially off |
// // Set timer 1 to overflow every two seconds |
// OpenTimer1(TIMER_INT_ON & T1_16BIT_RW & |
// T1_SOURCE_PINOSC & T1_PS_1_1 & |
// T1_OSC1EN_ON & T1_SYNC_EXT_OFF, |
// TIMER_GATE_OFF & TIMER_GATE_INT_OFF); |
// Open timer 2 for ECCP1 (PWM) |
OpenTimer2(TIMER_INT_OFF & T2_PS_1_4 & T2_POST_1_1); |
// Open timer 3 for PWM IR signaling |
OpenTimer3(TIMER_INT_ON & T3_16BIT_RW & T3_SOURCE_FOSC_4 & |
T3_OSC1EN_OFF & T3_PS_1_1 & T3_SYNC_EXT_OFF, TIMER_GATE_OFF); |
T3CONbits.TMR3ON = 0; // Timer 3 initially off |
// Non-applicable settings |
T1CONbits.T1CKPS = 0x0; // 1:1 prescale value |
T1CONbits.NOT_T1SYNC = 0x1; // No external sync |
T1GCONbits.TMR1GE = 0x0; // Disable gate control |
} |
// Interrupt handler for timer 0 |
void timer0_interrupt_handler() { |
void Timer1_Enable(void) { |
T1CONbits.TMR1ON = 1; |
} |
void timer0_enable() { |
T0CONbits.TMR0ON = 1; |
void Timer1_Disable(void) { |
T1CONbits.TMR1ON = 0; |
} |
void timer0_disable() { |
T0CONbits.TMR0ON = 0; |
} |
// Interrupt handler for timer 1 |
void timer1_interrupt_handler() { |
} |
void timer3_interrupt_handler() { |
} |
void timer3_enable() { |
T3CONbits.TMR3ON = 1; |
} |
void timer3_disable() { |
T3CONbits.TMR3ON = 0; |
} |
void Timer1_Interrupt_Handler(void) { |
#ifdef _TEST_TIMER1_RTC |
TMR1H = 0x7F; |
TMR1L = 0xFF; |
LED_BLUE_LAT = 1; |
LED_RED_LAT = 1; |
Delay10KTCYx(255); |
LED_BLUE_LAT = 0; |
LED_RED_LAT = 0; |
#endif |
} |
/PIC Stuff/PIC_27J13/timers.h |
---|
1,14 → 1,9 |
#ifndef __timer_interrupt_handler_h |
#define __timer_interrupt_handler_h |
void timers_init(void); |
void timer0_interrupt_handler(void); |
void timer0_enable(void); |
void timer0_disable(void); |
void timer1_interrupt_handler(void); |
void timer2_interrupt_handler(void); |
void timer3_interrupt_handler(void); |
void timer3_enable(void); |
void timer3_disable(void); |
void Timer1_Init(void); |
void Timer1_Enable(void); |
void Timer1_Disable(void); |
void Timer1_Interrupt_Handler(void); |
#endif |
/PIC Stuff/PIC_27J13/uart.c |
---|
1,4 → 1,4 |
#include "maindefs.h" |
#include "defines.h" |
#include "uart.h" |
#include "xbee.h" |
#include <string.h> |
/PIC Stuff/PIC_27J13/xbee.c |
---|
1,4 → 1,4 |
#include "maindefs.h" |
#include "defines.h" |
#include "xbee.h" |
#include <string.h> |