/PIC Stuff/PICX_27J13/defines.h |
---|
37,7 → 37,8 |
//#define _TEST_OLED_CHAR |
//#define _TEST_NFC_TO_SSD1306_OLED |
//#define _TEST_LUX_TO_CHAR_OLED |
#define _TEST_RTC_TO_LED_BACKPACK_CHAR_OLED |
//#define _TEST_RTC_TO_LED_BACKPACK_CHAR_OLED |
//#define _TEST_AHRS |
// </editor-fold> |
// <editor-fold defaultstate="collapsed" desc="Debug Redirection"> |
/PIC Stuff/PICX_27J13/funclist |
---|
1,66 → 1,110 |
_LED_Write_Digit_Num: CODE, 80528 0 102 |
_LED_Write_Num: CODE, 74802 0 724 |
___awdiv: CODE, 76442 0 322 |
_I2C_Get_Status: CODE, 78350 0 214 |
_LED_Write_Digit_Raw: CODE, 81100 0 80 |
_I2C_Interrupt_Master: CODE, 69236 0 1764 |
exp@coeff: MEDIUMCONST, 0 0 64527 |
_LED_Init: CODE, 81904 0 22 |
_NHD_Write_String: CODE, 80916 0 92 |
_LED_Set_Brightness: CODE, 79546 0 138 |
_DS3231_Begin: CODE, 79822 0 134 |
_NHD_Write_4_Bits: CODE, 79246 0 152 |
_I2C_Read_Buffer: CODE, 77894 0 238 |
__stringdata: MEDIUMCONST, 64569 0 966 |
_UART1_WriteS: CODE, 81536 0 64 |
_NHD_Init: CODE, 81838 0 36 |
_I2C_Interrupt_Slave: CODE, 67416 0 1820 |
_strlen: CODE, 80728 0 96 |
_I2C_Configure_Master: CODE, 81180 0 78 |
_I2C_Master_Send: CODE, 77630 0 264 |
_font: MEDIUMCONST, 63196 0 1275 |
_dpowers: MEDIUMCONST, 64471 0 10 |
___awmod: CODE, 77348 0 282 |
_UART1_Recv_Interrupt_Handler: CODE, 76006 0 436 |
i2___lwdiv: CODE, 80316 0 108 |
_LED_Write_Display: CODE, 79956 0 128 |
_pn532response_firmwarevers: MEDIUMCONST, 64554 0 8 |
i2_isdigit: CODE, 81710 0 48 |
_main: CODE, 65536 0 1880 |
_Interrupt_Enable: CODE, 81946 0 8 |
_numbertable: MEDIUMCONST, 64481 0 10 |
_NHD_Send_Command: CODE, 81758 0 40 |
_NHD_Send_Data: CODE, 81798 0 40 |
_pn532ack: MEDIUMCONST, 64562 0 7 |
_LED_Start: CODE, 78756 0 166 |
_LED_Draw_Colon: CODE, 81472 0 64 |
_I2C_Process_Send: CODE, 78922 0 164 |
i2___wmul: CODE, 81600 0 62 |
_I2C_Interrupt_Handler: CODE, 81332 0 72 |
i2___lwmod: CODE, 81008 0 92 |
_LED_Blink_Rate: CODE, 79398 0 148 |
_Interrupt_Init: CODE, 81926 0 10 |
__initialization: CODE, 80824 0 86 |
_DS3231_Get_Status: CODE, 80200 0 116 |
___lwdiv: CODE, 78564 0 192 |
_NHD_Begin: CODE, 77062 0 286 |
_alphatable: MEDIUMCONST, 64491 0 6 |
_I2C_Master_Restart: CODE, 78132 0 218 |
_DS3231_Get_Time: CODE, 75526 0 480 |
_I2C_Init: CODE, 76764 0 298 |
_LED_Clear: CODE, 80630 0 98 |
_isdigit: CODE, 81258 0 74 |
_sprintf: CODE, 71000 0 1614 |
_NHD_Set_Cursor: CODE, 80084 0 116 |
i2_sprintf: CODE, 72614 0 1164 |
_LED_Write_Digit_Num: CODE, 93530 0 102 |
_LED_Write_Num: CODE, 82386 0 724 |
___awdiv: CODE, 86204 0 322 |
_I2C_Get_Status: CODE, 89462 0 214 |
_LED_Write_Digit_Raw: CODE, 94384 0 80 |
_I2C_Interrupt_Master: CODE, 72930 0 1764 |
exp@coeff: MEDIUMCONST, 0 0 64563 |
_NFC_Send_Command_Check_Ack: CODE, 91320 0 144 |
_NFC_I2C_Read_Status: CODE, 95682 0 24 |
_LED_Init: CODE, 95706 0 22 |
_NFC_Init: CODE, 95748 0 12 |
_NHD_Write_String: CODE, 94206 0 92 |
_NFC_I2C_Read_ACK: CODE, 92522 0 118 |
_LUX_Enable: CODE, 95576 0 40 |
_LED_Set_Brightness: CODE, 91604 0 138 |
_DS3231_Begin: CODE, 91880 0 134 |
_NHD_Write_4_Bits: CODE, 91020 0 152 |
_I2C_Read_Buffer: CODE, 88536 0 238 |
__stringdata: MEDIUMCONST, 64605 0 929 |
_UART1_WriteS: CODE, 95018 0 64 |
_SSD1306_Set_Cursor: CODE, 95082 0 62 |
_SSD1306_Set_Rotation: CODE, 89010 0 234 |
_NHD_Init: CODE, 95616 0 36 |
_I2C_Interrupt_Slave: CODE, 71162 0 1768 |
_strlen: CODE, 93830 0 96 |
_NFC_SAMConfig: CODE, 90552 0 156 |
_I2C_Configure_Master: CODE, 94464 0 78 |
_LUX_Calculate_Lux: CODE, 76432 0 1422 |
_I2C_Master_Send: CODE, 88272 0 264 |
_SPI2_Init: CODE, 92402 0 120 |
_font: MEDIUMCONST, 63170 0 1275 |
_dpowers: MEDIUMCONST, 64445 0 40 |
_memset: CODE, 94954 0 64 |
___awmod: CODE, 87716 0 282 |
_UART1_Recv_Interrupt_Handler: CODE, 85352 0 428 |
_LED_Write_Display: CODE, 92146 0 128 |
_I2C_Master_Recv: CODE, 90708 0 156 |
_pn532response_firmwarevers: MEDIUMCONST, 64590 0 8 |
i2_isdigit: CODE, 95362 0 48 |
_main: CODE, 65536 0 3710 |
_LUX_Init: CODE, 94688 0 68 |
_Interrupt_Enable: CODE, 95780 0 8 |
_numbertable: MEDIUMCONST, 64517 0 10 |
_SSD1306_Draw_Fast_VLine: CODE, 93926 0 94 |
_NHD_Send_Command: CODE, 95456 0 40 |
_SSD1306_Abs: CODE, 95206 0 58 |
_NHD_Send_Data: CODE, 95496 0 40 |
_pn532ack: MEDIUMCONST, 64598 0 7 |
_LED_Start: CODE, 90222 0 166 |
_SSD1306_Swap: CODE, 94824 0 66 |
_SSD1306_Init: CODE, 87998 0 274 |
_LED_Draw_Colon: CODE, 94890 0 64 |
_I2C_Process_Send: CODE, 90388 0 164 |
i2___wmul: CODE, 95144 0 62 |
_NFC_I2C_Write_Cmd: CODE, 85780 0 424 |
_LUX_Read_2_Bytes: CODE, 91464 0 140 |
___lmul: CODE, 90054 0 168 |
_LUX_Write_2_Bytes: CODE, 94020 0 94 |
_I2C_Interrupt_Handler: CODE, 94616 0 72 |
_SSD1306_Write: CODE, 83802 0 592 |
_SSD1306_Begin: CODE, 83110 0 692 |
_NFC_I2C_Read_Data: CODE, 92640 0 118 |
_LED_Blink_Rate: CODE, 91172 0 148 |
i2___lldiv: CODE, 90864 0 156 |
_memcpy: CODE, 94298 0 86 |
_Interrupt_Init: CODE, 95760 0 10 |
__initialization: CODE, 93632 0 94 |
_SSD1306_Write_String: CODE, 94114 0 92 |
_DS3231_Get_Status: CODE, 92874 0 116 |
_NHD_Begin: CODE, 87430 0 286 |
_SSD1306_Draw_Line: CODE, 79940 0 862 |
_alphatable: MEDIUMCONST, 64527 0 6 |
_I2C_Master_Restart: CODE, 89244 0 218 |
_LUX_Set_Gain: CODE, 93102 0 110 |
___lldiv: CODE, 87142 0 288 |
_SSD1306_Draw_Char: CODE, 77854 0 1062 |
_SSD1306_Fill_Rect: CODE, 92014 0 132 |
_DS3231_Get_Time: CODE, 84394 0 480 |
_I2C_Init: CODE, 86844 0 298 |
_LED_Clear: CODE, 93732 0 98 |
_LUX_Disable: CODE, 95536 0 40 |
_NFC_Get_Firmware_Version: CODE, 86526 0 318 |
_isdigit: CODE, 94542 0 74 |
_sprintf: CODE, 69246 0 1916 |
_hexpowers: MEDIUMCONST, 64485 0 32 |
_NHD_Set_Cursor: CODE, 92758 0 116 |
_Delay10TCYx: CODE, 95728 0 20 |
i2___llmod: CODE, 92274 0 128 |
i2_sprintf: CODE, 74694 0 1738 |
_InterruptHandlerLow: CODE, 24 0 154 |
_Timer1_Interrupt_Handler: CODE, 81958 0 2 |
_Delay10KTCYx: CODE, 81874 0 30 |
___lwmod: CODE, 79086 0 160 |
_InterruptHandlerHigh: CODE, 8 0 79814 |
log@coeff: MEDIUMCONST, 0 0 64554 |
_NHD_Wait_For_Ready: CODE, 81662 0 48 |
i2_strlen: CODE, 81404 0 68 |
___wmul: CODE, 80424 0 104 |
_NHD_Pulse_Enable: CODE, 81936 0 10 |
Total: 226583 |
_Timer1_Interrupt_Handler: CODE, 95792 0 2 |
_Delay10KTCYx: CODE, 95652 0 30 |
_strncmp: CODE, 89676 0 208 |
_LUX_Set_Timing: CODE, 93212 0 110 |
_SSD1306_Clear_Display: CODE, 95264 0 50 |
_InterruptHandlerHigh: CODE, 8 0 91872 |
___llmod: CODE, 88774 0 236 |
log@coeff: MEDIUMCONST, 0 0 64590 |
_NHD_Wait_For_Ready: CODE, 95314 0 48 |
_SPI2_Write: CODE, 92990 0 112 |
_SSD1306_Command: CODE, 95410 0 46 |
i2_strlen: CODE, 94756 0 68 |
_memcmp: CODE, 89884 0 170 |
_SSD1306_Draw_Pixel: CODE, 81634 0 752 |
___wmul: CODE, 93426 0 104 |
_NFC_Poll_Targets: CODE, 80802 0 832 |
_SSD1306_Display: CODE, 93322 0 104 |
_LUX_Get_Full_Luminosity: CODE, 84874 0 478 |
_NHD_Pulse_Enable: CODE, 95770 0 10 |
Total: 252572 |
/PIC Stuff/PICX_27J13/main.c |
---|
702,7 → 702,7 |
DS3231_Begin(); |
// Sec, Min, Hour, DOW, Day, Month, Year, Mil Time, AM/PM |
// DS3231_Set_Time(30, 44, 12, 5, 4, 1, 13, 0, 0); |
DS3231_Set_Time(00, 59, 7, 5, 18, 1, 13, 0, 0); |
char sec, min, hour, day, date, month, year, h_mil, h_am_pm; |
while (1) { |
1314,6 → 1314,47 |
} |
} |
// </editor-fold> |
#elif defined(_TEST_AHRS) |
// <editor-fold defaultstate="collapsed" desc="_TEST_AHRS"> |
void main(void) { |
char output[64]; |
// Set all ports as digial I/O except for AN0-AN2 (pins 2-4) |
ANCON0 = 0xF8; |
ANCON1 = 0x1F; |
UART_DATA uart_data; |
UART1_Init(&uart_data); |
I2C_DATA i2c_data; |
I2C_Init(&i2c_data); |
L3G_DATA gyro_data; |
L3G_Init(&gyro_data, L3GD20_DEVICE, L3G_SA0_HIGH); |
LSM303_DATA acc_data; |
LSM303_Init(&acc_data, LSM303DLHC_DEVICE, ACC_ADDRESS_SA0_A_LOW); |
I2C_Configure_Master(I2C_100KHZ); |
Interrupt_Init(); // Initialize the interrupt priorities |
Interrupt_Enable(); // Enable high-priority interrupts and low-priority interrupts |
sprintf(output, "\r\nBegin Program\r\n"); |
DBG_PRINT_MAIN(output, strlen(output)); |
L3G_Begin(); |
LSM303_Begin(); |
int a_x, a_y, a_z, m_x, m_y, m_z, g_x, g_y, g_z; |
while (1) { |
L3G_Read(&g_x, &g_y, &g_z); |
LSM303_Read_Acc(&a_x, &a_y, &a_z); |
LSM303_Read_Mag(&m_x, &m_y, &m_z); |
sprintf(output, "GAM:%d,%d,%d,%d,%d,%d,%d,%d,%d\r\n", |
g_x,g_y,g_z,a_x,a_y,a_z,m_x,m_y,m_z); |
DBG_PRINT_MAIN(output, strlen(output)); |
Delay10KTCYx(255); |
} |
} |
// </editor-fold> |
#elif defined(_TEST_XBEE) |
// <editor-fold defaultstate="collapsed" desc="_TEST_XBEE"> |
void main(void) { |
1488,6 → 1529,145 |
// </editor-fold> |
#else |
int main() { |
char output[64]; |
// Set all ports as digial I/O |
ANCON0 = 0xFF; |
ANCON1 = 0x1F; |
// NFC stuff |
NFC_FIRMWARE_VERSION version; |
NFC_TargetDataMiFare cardData[2]; |
NFC_TargetDataMiFare cardData_prev[2]; |
I2C_DATA i2c_data; |
I2C_Init(&i2c_data); |
LED_DATA led_data; |
LED_Init(&led_data); |
OLED_CHAR_DATA oled_data; |
NHD_Init(&oled_data); |
TSL2561_DATA lux_data; |
LUX_Init(&lux_data, TSL2561_ADDR_FLOAT); |
NFC_DATA nfc_data; |
NFC_Init(&nfc_data); |
SPI_DATA spi_data; |
SPI2_Init(&spi_data, SPI2_FOSC_4); |
SSD1306_DATA ssd1306_data; |
SSD1306_Init(&ssd1306_data); |
I2C_Configure_Master(I2C_400KHZ); |
Interrupt_Init(); // Initialize the interrupt priorities |
Interrupt_Enable(); // Enable high-priority interrupts and low-priority interrupts |
LED_Start(); |
LED_Draw_Colon(1); |
NHD_Begin(16, 2); |
DS3231_Begin(); |
// You can change the gain on the fly, to adapt to brighter/dimmer light situations |
// LUX_Set_Gain(TSL2561_GAIN_0X); // set no gain (for bright situtations) |
LUX_Set_Gain(TSL2561_GAIN_16X); // set 16x gain (for dim situations) |
// Changing the integration time gives you a longer time over which to sense light |
// longer timelines are slower, but are good in very low light situtations! |
LUX_Set_Timing(TSL2561_INTEGRATIONTIME_13MS); // shortest integration time (bright light) |
// LUX_Set_Timing(TSL2561_INTEGRATIONTIME_101MS); // medium integration time (medium light) |
// LUX_Set_Timing(TSL2561_INTEGRATIONTIME_402MS); // longest integration time (dim light) |
SSD1306_Begin(SSD1306_SWITCHCAPVCC); |
memset(cardData, 0, 24); |
memset(cardData_prev, 0, 24); |
SSD1306_Clear_Display(); |
SSD1306_Set_Rotation(0); |
SSD1306_Set_Cursor(0, 0); |
char sec, min, hour, day, date, month, year, h_mil, h_am_pm; |
int time; |
version = NFC_Get_Firmware_Version(); |
while (!version.IC) { |
sprintf(output, "Waiting for NFC board..\n"); |
SSD1306_Write_String(output, strlen(output)); |
SSD1306_Display(); |
Delay10KTCYx(255); |
version = NFC_Get_Firmware_Version(); |
} |
sprintf(output, "PN5%X Ver. %d.%d\n", version.IC, version.Ver, version.Rev); |
SSD1306_Write_String(output, strlen(output)); |
SSD1306_Display(); |
NFC_SAMConfig(); |
while (1) { |
// Time to LED backpack |
DS3231_Get_Time(&sec, &min, &hour, &day, &date, &month, &year, &h_mil, &h_am_pm); |
time = hour * 100 + min; |
LED_Write_Num(time); |
// Lux to Character OLED |
unsigned long lum = LUX_Get_Full_Luminosity(); |
unsigned int ir = lum >> 16; |
unsigned int full = lum & 0xFFFF; |
NHD_Set_Cursor(0, 0); |
sprintf(output, "I: %d ", ir); |
NHD_Write_String(output, strlen(output)); |
sprintf(output, "V: %d ", full - ir); |
NHD_Write_String(output, strlen(output)); |
NHD_Set_Cursor(0, 1); |
sprintf(output, "Lux: %ld ", LUX_Calculate_Lux(full, ir)); |
NHD_Write_String(output, strlen(output)); |
// NFC Query |
char length = NFC_Poll_Targets(1, 1, cardData); |
if (!length) { |
memset(cardData_prev, 0, 24); |
} else if (length == 1) { |
if (memcmp(&cardData[0].NFCID, &cardData_prev[0].NFCID, cardData[0].NFCID_LEN) == 0) { |
// Do nothing |
} else if (memcmp(&cardData[0].NFCID, &cardData_prev[1].NFCID, cardData[0].NFCID_LEN) == 0) { |
memcpy((char *) &cardData_prev[0], (const char *) &cardData[0], 12); |
} else { |
sprintf(output, "UID: %02X %02X %02X %02X\n", cardData[0].NFCID[0], cardData[0].NFCID[1], cardData[0].NFCID[2], cardData[0].NFCID[3]); |
SSD1306_Write_String(output, strlen(output)); |
SSD1306_Display(); |
memcpy((char *) &cardData_prev[0], (const char *) &cardData[0], 12); |
} |
memset(&cardData_prev[1], 0, 12); |
} else if (length == 2) { |
if (memcmp(&cardData[0].NFCID, &cardData_prev[0].NFCID, cardData[0].NFCID_LEN) == 0 && |
memcmp(&cardData[1].NFCID, &cardData_prev[1].NFCID, cardData[1].NFCID_LEN) == 0) { |
// Do nothing |
} else if (memcmp(&cardData[0].NFCID, &cardData_prev[1].NFCID, cardData[0].NFCID_LEN) == 0 && |
memcmp(&cardData[1].NFCID, &cardData_prev[0].NFCID, cardData[1].NFCID_LEN) == 0) { |
memcpy((char *) &cardData_prev[0], (const char *) &cardData[0], 12); |
memcpy((char *) &cardData_prev[1], (const char *) &cardData[1], 12); |
} else if (memcmp(&cardData[0].NFCID, &cardData_prev[0].NFCID, cardData[0].NFCID_LEN) == 0) { |
// First card matched |
sprintf(output, "UID: %02X %02X %02X %02X\n", cardData[1].NFCID[0], cardData[1].NFCID[1], cardData[1].NFCID[2], cardData[1].NFCID[3]); |
SSD1306_Write_String(output, strlen(output)); |
SSD1306_Display(); |
memcpy(&cardData_prev[1], (const char *) &cardData[1], 12); |
} else if (memcmp(&cardData[1].NFCID, &cardData_prev[1].NFCID, cardData[1].NFCID_LEN) == 0) { |
// Second card matched |
sprintf(output, "UID: %02X %02X %02X %02X\n", cardData[0].NFCID[0], cardData[0].NFCID[1], cardData[0].NFCID[2], cardData[0].NFCID[3]); |
SSD1306_Write_String(output, strlen(output)); |
SSD1306_Display(); |
memcpy((char *) &cardData_prev[0], (const char *) &cardData[0], 12); |
} else { |
// No match |
sprintf(output, "UID: %02X %02X %02X %02X\n", cardData[0].NFCID[0], cardData[0].NFCID[1], cardData[0].NFCID[2], cardData[0].NFCID[3]); |
SSD1306_Write_String(output, strlen(output)); |
SSD1306_Display(); |
memcpy((char *) &cardData_prev[0], (const char *) &cardData[0], 12); |
sprintf(output, "UID: %02X %02X %02X %02X\n", cardData[1].NFCID[0], cardData[1].NFCID[1], cardData[1].NFCID[2], cardData[1].NFCID[3]); |
SSD1306_Write_String(output, strlen(output)); |
SSD1306_Display(); |
memcpy((char *) &cardData_prev[1], (const char *) &cardData[1], 12); |
} |
} |
Delay10KTCYx(100); |
} |
} |
#endif |
/PIC Stuff/PICX_27J13/nbproject/Makefile-genesis.properties |
---|
1,5 → 1,5 |
# |
#Thu Jan 03 22:03:22 EST 2013 |
#Sat Jan 05 02:50:26 EST 2013 |
default.languagetoolchain.dir=C\:\\Program Files (x86)\\Microchip\\xc8\\v1.12\\bin |
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=d94e033fce233e60ccb9abf3a212a9b7 |
default.languagetoolchain.version=1.12 |