Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 160 → Rev 161

/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