30,12 → 30,16 |
UART_DATA uart_data; |
I2C_DATA i2c_data; |
|
char LED_R_ON = 0; |
char LED_G_ON = 0; |
char LED_B_ON = 0; |
|
void Error(char ID) { |
while(1) { |
for (char i = 0; i < ID; i++) { |
LED_LAT = 1; |
LED_R_ON = 1; |
__delay_ms(120); |
LED_LAT = 0; |
LED_R_ON = 0; |
__delay_ms(150); |
} |
__delay_ms(1000); |
46,22 → 50,22 |
char buffer[20]; |
char result, length; |
|
BLE_RESET_LAT = 0; |
__delay_ms(3000); |
BLE_RESET_LAT = 1; |
__delay_ms(200); |
// BLE_RESET_LAT = 0; |
// __delay_ms(3000); |
// BLE_RESET_LAT = 1; |
// __delay_ms(200); |
|
// Check BLE Module |
length = UART_Read(buffer); |
if (memcmp(buffer, "\r\nBR-LE4.0-S2\r\n", 15)) { |
Error(1); |
} |
UART_Write("AT\r", 3); |
__delay_ms(10); |
length = UART_Read(buffer); |
if (memcmp(buffer, "\r\nOK\r\n", 6)) { |
Error(1); |
} |
// // Check BLE Module |
// length = UART_Read(buffer); |
// if (memcmp(buffer, "\r\nBR-LE4.0-S2\r\n", 15)) { |
// Error(1); |
// } |
// UART_Write("AT\r", 3); |
// __delay_ms(10); |
// length = UART_Read(buffer); |
// if (memcmp(buffer, "\r\nOK\r\n", 6)) { |
// Error(1); |
// } |
|
// Check Battery Gauge |
I2C_Master_Restart(ADDRESS_LIPO, 0x0C, 2); |
75,7 → 79,7 |
if ((buffer[0] != 0x97) || (buffer[1] != 0x00) || (length != 2)) { |
Error(2); |
} |
|
|
// Check Gyroscope |
I2C_Master_Restart(ADDRESS_GYRO, 0x0F, 1); |
do { |
118,24 → 122,28 |
|
int main() { |
|
OSCCON = 0x70; // PLL disabled, 8MHz |
OSCCON = 0xF0; // Software PLL enabled, 32MHz |
ANSELA = 0; |
ANSELB = 0; |
ANSELC = 0; |
|
LED_TRIS = 0; |
LED_LAT = 0; |
LED_R_TRIS = 0; |
LED_R_LAT = 1; |
LED_G_TRIS = 0; |
LED_G_LAT = 1; |
LED_B_TRIS = 0; |
LED_B_LAT = 1; |
|
BLE_RESET_TRIS = 0; |
BLE_RESET_LAT = 0; |
BLE_RESET_LAT = 1; |
|
BLE_SLEEP_TRIS = 0; |
BLE_SLEEP_LAT = 0; |
UART_CTS_TRIS = 1; |
UART_RTS_TRIS = 0; |
UART_RTS_LAT = 0; |
|
BLE_MODE_TRIS = 0; |
BLE_MODE_LAT = 0; |
|
TIMER_1_Init(); |
// Initialize all peripherals |
// TIMER_1_Init(); |
TIMER_2_Init(); |
UART_Init(&uart_data); |
I2C_Init(&i2c_data); |
INTERRUPT_Init(); |
142,11 → 150,28 |
|
I2C_Configure_Master(I2C_100KHZ); |
INTERRUPT_Enable(); |
|
// TIMER_1_Start(); |
TIMER_2_Start(); |
|
// A small delay is needed for the sensors to start up |
__delay_ms(10); |
|
Startup_Check(); |
|
TIMER_1_Start(); |
// LED_R_ON = 1; |
// LED_G_ON = 1; |
// LED_B_ON = 1; |
|
while(1); |
} |
|
while(1) { |
UART_Write("Hello World \r\n", 14); |
LED_B_ON = 0; |
LED_R_ON = 1; |
__delay_ms(250); |
LED_R_ON = 0; |
LED_G_ON = 1; |
__delay_ms(250); |
LED_G_ON = 0; |
LED_B_ON = 1; |
__delay_ms(250); |
} |
} |