Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 221 → Rev 222

/PIC Stuff/PICX_16F1829_BLE_IMU/main.c
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);
}
}