Lizzy project
Dependencies: aconno_I2C Lis2dh12 adc52832_common aconno_SEGGER_RTT
main.cpp
00001 /* 00002 * aconno.de 00003 * Made by Jurica Resetar 00004 * All right reserved 00005 * 00006 */ 00007 00008 #include "main.h" 00009 #include "bsp.h" 00010 #include "tasks.h" 00011 00012 00013 char memsI2CAddress = I2C_ADDRESS; 00014 Thread bleT; 00015 Thread measureT; 00016 Thread updateServiceT; 00017 Thread updateBuzzLedsT; 00018 Thread servLoopT; 00019 00020 00021 extern DigitalOut redLed; 00022 DigitalOut AccVcc(ACC_POWER_PIN); 00023 InterruptIn INT1(INT_PIN1); 00024 //InterruptIn INT2(INT_PIN2); 00025 I2C i2c(I2C_DATA,I2C_CLK); 00026 00027 Lis2dh12 mems(&i2c, memsI2CAddress); 00028 00029 00030 void int1Handler(void) 00031 { 00032 __disable_irq(); 00033 00034 mems.clearIntFlag(); 00035 //redLed = !redLed; 00036 00037 measureT.signal_set(START_MEAS); 00038 00039 __enable_irq(); 00040 } 00041 00042 int main(){ 00043 00044 tasks_init(); 00045 00046 printf("Main program started.\r\n"); 00047 00048 NRF_NVMC->CONFIG = 0x00000002; // Erase enable UICR 00049 NRF_NVMC->ERASEUICR = 0x00000001; // Erase all 00050 NRF_NVMC->CONFIG = 0x00000001; // Write enable UICR 00051 NRF_UICR->NFCPINS = 0xFFFFFFFE; // Change NFC to GPIO function 00052 00053 00054 AccVcc = 1; 00055 wait_ms(POWER_UP_DELAY_MS); 00056 00057 //measureT.signal_set(START_MEAS); 00058 INT1.rise(int1Handler); 00059 NRF_GPIO->PIN_CNF[INT_PIN1] &= 0xFFFFFFF3; // NO PullUps 00060 00061 BLE &ble = BLE::Instance(); 00062 ble.init(bleInitComplete); 00063 00064 mems.setMode(LOW_POWER); 00065 //mems.setMode(HIGH_RES); 00066 mems.enableAxes(X_axis); 00067 mems.enableAxes(Y_axis); 00068 mems.enableAxes(Z_axis); 00069 mems.setODR(ACC_ODR_MODE); 00070 //mems.setScale(_16g); 00071 mems.setScale(_8g); 00072 mems.int1Setup(0x40); // IntActivity 1 driven to INT1 pad 00073 mems.int1Latch(0x01); // Enable int1 latch 00074 mems.int1Threshold(INT1_THRESHOLD); 00075 mems.int1Duration(INT1_DUR); 00076 mems.int1Config(0x2A); // Enable XHigh, YHigh and ZHigh 00077 00078 bleT.start(callback(bleF, &ble)); // Start bleT 00079 measureT.start(callback(measureF, &mems)); 00080 updateServiceT.start(updateServiceF); 00081 updateBuzzLedsT.start(updateBuzzLedsF); 00082 servLoopT.start(servLoopC); 00083 00084 while(1){ 00085 //disableI2C(); 00086 //ble.waitForEvent(); 00087 Thread::wait(0xFFFFFFFF); 00088 } 00089 }
Generated on Wed Jul 13 2022 10:29:30 by
1.7.2

