180718 HJM : 8 Count sensing data RF send, certTest, temp(cold)Test_
Dependencies: 1_cubebite_ev-cog-ad3029lz_433MHz_1nd_certTest stm-spirit1-rf-driver_for_cubebite2
Fork of cubebite_rnd_ev-cog-ad3029lz_433MHz_2nd_testing2_RF10CountSensingCheckOK_180619_initReviseTest by
main.cpp@2:8861d01a78e4, 2018-07-18 (annotated)
- Committer:
- jmhong
- Date:
- Wed Jul 18 05:46:36 2018 +0000
- Revision:
- 2:8861d01a78e4
- Parent:
- 1:04f46755f8af
180718 HJM : 8 Count sensing data RF send, certTest, temp(cold)Test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jmhong | 1:04f46755f8af | 1 | //HJM : 선풍기 에이징 테스트 용 소스임. |
jmhong | 1:04f46755f8af | 2 | //180615 HJM : 선풍기 에이징 용 온도 1개 진동 10개 전송용 테스트 임. |
jmhong | 1:04f46755f8af | 3 | // CUBEBITE_TEMPERATURE_DISABLE define 값으로 온도 센서 (연결 및 미연결) 시 설정을 할 수 있음. |
jmhong | 2:8861d01a78e4 | 4 | //180717 HJM : 인증(온도) 테스트용 소스 버전 관리, 0.1 -> 온도(저온) 테스트 |
jmhong | 2:8861d01a78e4 | 5 | //180717 HJM : 수정 1 |
jmhong | 1:04f46755f8af | 6 | |
jmhong | 1:04f46755f8af | 7 | |
jmhong | 1:04f46755f8af | 8 | #include "mbed.h" |
jmhong | 0:c2a57b2f934e | 9 | #include "ADXL362.h" |
jmhong | 1:04f46755f8af | 10 | #include "SimpleSpirit1.h" |
jmhong | 0:c2a57b2f934e | 11 | #include "main.h" |
jmhong | 0:c2a57b2f934e | 12 | |
jmhong | 0:c2a57b2f934e | 13 | |
jmhong | 2:8861d01a78e4 | 14 | #define FIRMWARE_VERSION_MAJOR 0 |
jmhong | 2:8861d01a78e4 | 15 | #define FIRMWARE_VERSION_MINOR 1 |
jmhong | 2:8861d01a78e4 | 16 | #define FIRMWARE_VERSION_REVISE 0 |
jmhong | 2:8861d01a78e4 | 17 | |
jmhong | 2:8861d01a78e4 | 18 | //#define FIRMWARE_VERSION_PRINT(x) printf(#x " = %s\n", x); |
jmhong | 1:04f46755f8af | 19 | |
jmhong | 0:c2a57b2f934e | 20 | //************************************************************************************* |
jmhong | 0:c2a57b2f934e | 21 | //Define : Test, Compile |
jmhong | 0:c2a57b2f934e | 22 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 23 | //#define CUBEBITE_DEBUG |
jmhong | 1:04f46755f8af | 24 | //#define HEAVY_DEBUG |
jmhong | 1:04f46755f8af | 25 | |
jmhong | 1:04f46755f8af | 26 | |
jmhong | 0:c2a57b2f934e | 27 | /* 180108 cubebite HJM : cubebite Testing define, 1개씩만 켜야 함. */ |
jmhong | 0:c2a57b2f934e | 28 | #define CUBEBITE_RF_SPEED_TEST_SEND_ON |
jmhong | 0:c2a57b2f934e | 29 | //#define CUBEBITE_RF_SPEED_TEST_RECV_ON |
jmhong | 1:04f46755f8af | 30 | //#define CUBEBITE_RF_SPEED_TEST_SEND_AND_RECV_ON //HJM : 추후 만들 예정.. |
jmhong | 0:c2a57b2f934e | 31 | |
jmhong | 0:c2a57b2f934e | 32 | /* 180109 cubebite HJM : cubebite Compile define, 1개씩만 켜야 함. */ |
jmhong | 0:c2a57b2f934e | 33 | #define CUBEBITE_BOARD_AD3029LZ |
jmhong | 0:c2a57b2f934e | 34 | |
jmhong | 0:c2a57b2f934e | 35 | |
jmhong | 0:c2a57b2f934e | 36 | #define CUBEBITE_RF_SETTING_VALUE_PRINT |
jmhong | 1:04f46755f8af | 37 | //#define CUBEBITE_TEMPERATURE_DISABLE |
jmhong | 1:04f46755f8af | 38 | |
jmhong | 1:04f46755f8af | 39 | |
jmhong | 1:04f46755f8af | 40 | //180411 HJM : 현재 1~3 까지 3대까지 가능 -> 게이트웨이에서 3대까지만 처리하게끔 되어있 |
jmhong | 2:8861d01a78e4 | 41 | //#define CUBEBITE_SENSOR_UUID 1 //3180621 HJM : 온도 및 진동 테스트 용 |
jmhong | 2:8861d01a78e4 | 42 | #define CUBEBITE_SENSOR_UUID 2 //180621 HJM : 철기연 테스트 용, 방대리님 테스트 용 |
jmhong | 0:c2a57b2f934e | 43 | //************************************************************************************* |
jmhong | 0:c2a57b2f934e | 44 | |
jmhong | 1:04f46755f8af | 45 | |
jmhong | 1:04f46755f8af | 46 | |
jmhong | 1:04f46755f8af | 47 | |
jmhong | 1:04f46755f8af | 48 | //HJM : 타이머 인터럽트 테스트 용 |
jmhong | 1:04f46755f8af | 49 | #ifdef CUBEBITE_DEBUG |
jmhong | 1:04f46755f8af | 50 | DigitalOut led1(LED1); |
jmhong | 1:04f46755f8af | 51 | #endif |
jmhong | 1:04f46755f8af | 52 | |
jmhong | 1:04f46755f8af | 53 | |
jmhong | 1:04f46755f8af | 54 | |
jmhong | 1:04f46755f8af | 55 | |
jmhong | 1:04f46755f8af | 56 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 57 | //HJM SUDO code : 3개 객체 생성->RF, 온도, 진동 |
jmhong | 1:04f46755f8af | 58 | //************************************************************************************* |
jmhong | 2:8861d01a78e4 | 59 | |
jmhong | 1:04f46755f8af | 60 | |
jmhong | 1:04f46755f8af | 61 | |
jmhong | 1:04f46755f8af | 62 | //온도 객체 |
jmhong | 1:04f46755f8af | 63 | #ifndef CUBEBITE_TEMPERATURE_DISABLE |
jmhong | 1:04f46755f8af | 64 | I2C i2c(I2C_SDA, I2C_SCL); //HJM : 테스트 용 임, 서대리님이 클래스 정리해서 줄 예정 |
jmhong | 1:04f46755f8af | 65 | #endif |
jmhong | 1:04f46755f8af | 66 | |
jmhong | 1:04f46755f8af | 67 | //진동 객체(Accelerometer (mosi, miso, sclk, cs), SPI 1) |
jmhong | 1:04f46755f8af | 68 | ADXL362 adxl362(P1_07, P1_08, P1_06, P1_10); //HJM : 테스트 용 임, 서대리님이 클래스 정리해서 줄 예정 |
jmhong | 1:04f46755f8af | 69 | |
jmhong | 1:04f46755f8af | 70 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 71 | |
jmhong | 1:04f46755f8af | 72 | |
jmhong | 1:04f46755f8af | 73 | |
jmhong | 1:04f46755f8af | 74 | |
jmhong | 1:04f46755f8af | 75 | |
jmhong | 1:04f46755f8af | 76 | |
jmhong | 1:04f46755f8af | 77 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 78 | //HJM SUDO code : main 사용자 함수 선언 |
jmhong | 1:04f46755f8af | 79 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 80 | |
jmhong | 1:04f46755f8af | 81 | |
jmhong | 1:04f46755f8af | 82 | static void callback_func(int event); //RF user callback 함수임. |
jmhong | 1:04f46755f8af | 83 | void UserTimerInterrupt(void); //1초, 타이머 인터럽트 임 |
jmhong | 1:04f46755f8af | 84 | int UserTimerInterrupt_Execution(void); |
jmhong | 2:8861d01a78e4 | 85 | int UserTimerInterrupt_Execution2(void); |
jmhong | 2:8861d01a78e4 | 86 | //void UserTimerInterrupt2(void); |
jmhong | 1:04f46755f8af | 87 | static int SendData(SimpleSpirit1& myspirit); |
jmhong | 1:04f46755f8af | 88 | |
jmhong | 1:04f46755f8af | 89 | |
jmhong | 1:04f46755f8af | 90 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 91 | |
jmhong | 1:04f46755f8af | 92 | |
jmhong | 1:04f46755f8af | 93 | |
jmhong | 1:04f46755f8af | 94 | |
jmhong | 1:04f46755f8af | 95 | |
jmhong | 0:c2a57b2f934e | 96 | |
jmhong | 0:c2a57b2f934e | 97 | |
jmhong | 0:c2a57b2f934e | 98 | |
jmhong | 1:04f46755f8af | 99 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 100 | //(테스트용)HJM SUDO code : 전역 변수, 진동, 온도 쪽 테스트용임. 추후 서대리님이 클래스 재 정의시 없어질 예정 |
jmhong | 1:04f46755f8af | 101 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 102 | |
jmhong | 2:8861d01a78e4 | 103 | //RF 객체 |
jmhong | 2:8861d01a78e4 | 104 | static SimpleSpirit1 &myspirit = SimpleSpirit1::CreateInstance(P0_01, P0_02, P0_00, P1_12 ,P2_08, P1_14); |
jmhong | 2:8861d01a78e4 | 105 | // P0_01[SPI0_MOSI] |
jmhong | 2:8861d01a78e4 | 106 | // P0_02[SPI0_MISO], |
jmhong | 2:8861d01a78e4 | 107 | // P0_00[SPI0_CLK], |
jmhong | 2:8861d01a78e4 | 108 | // P1_12[GPIO 28, RF(GPIO 0)]->IRQ로 설정, |
jmhong | 2:8861d01a78e4 | 109 | // P2_08[SPI0_CS2], |
jmhong | 2:8861d01a78e4 | 110 | // P1_14[GPIO 30, RF (SDN)] |
jmhong | 1:04f46755f8af | 111 | |
jmhong | 1:04f46755f8af | 112 | |
jmhong | 1:04f46755f8af | 113 | //진동 |
jmhong | 1:04f46755f8af | 114 | uint16_t vCnt = 0; |
jmhong | 1:04f46755f8af | 115 | uint8_t iCnt = 0; |
jmhong | 1:04f46755f8af | 116 | |
jmhong | 1:04f46755f8af | 117 | //int16_t x16 = 0; |
jmhong | 1:04f46755f8af | 118 | //int16_t y16 = 0; |
jmhong | 1:04f46755f8af | 119 | //int16_t z16 = 0; |
jmhong | 1:04f46755f8af | 120 | int8_t x8 = 0; |
jmhong | 1:04f46755f8af | 121 | int8_t y8 = 0; |
jmhong | 1:04f46755f8af | 122 | int8_t z8 = 0; |
jmhong | 1:04f46755f8af | 123 | |
jmhong | 1:04f46755f8af | 124 | |
jmhong | 1:04f46755f8af | 125 | int8_t int8tX8Result = 0; |
jmhong | 1:04f46755f8af | 126 | int8_t int8tY8Result = 0; |
jmhong | 1:04f46755f8af | 127 | int8_t int8tZ8Result = 0; |
jmhong | 0:c2a57b2f934e | 128 | |
jmhong | 0:c2a57b2f934e | 129 | |
jmhong | 1:04f46755f8af | 130 | int16_t temp_x16[3] = {0,}; |
jmhong | 1:04f46755f8af | 131 | int16_t temp_y16[3] = {0,}; |
jmhong | 1:04f46755f8af | 132 | int16_t temp_z16[3] = {0,}; |
jmhong | 1:04f46755f8af | 133 | |
jmhong | 1:04f46755f8af | 134 | int Comp1_x = 0, Comp2_x = 0; |
jmhong | 1:04f46755f8af | 135 | int Comp1_y = 0, Comp2_y = 0; |
jmhong | 1:04f46755f8af | 136 | int Comp1_z = 0, Comp2_z = 0; |
jmhong | 1:04f46755f8af | 137 | |
jmhong | 1:04f46755f8af | 138 | float float_x = 0; |
jmhong | 1:04f46755f8af | 139 | float float_y = 0; |
jmhong | 1:04f46755f8af | 140 | float float_z = 0; |
jmhong | 1:04f46755f8af | 141 | |
jmhong | 1:04f46755f8af | 142 | float G_x = 0; |
jmhong | 1:04f46755f8af | 143 | float G_y = 0; |
jmhong | 1:04f46755f8af | 144 | float G_z = 0; |
jmhong | 1:04f46755f8af | 145 | |
jmhong | 1:04f46755f8af | 146 | float Output = 0; |
jmhong | 1:04f46755f8af | 147 | |
jmhong | 1:04f46755f8af | 148 | double dVibOutputSqrt = 0; |
jmhong | 0:c2a57b2f934e | 149 | |
jmhong | 0:c2a57b2f934e | 150 | |
jmhong | 1:04f46755f8af | 151 | //온도 |
jmhong | 1:04f46755f8af | 152 | char wReg[2] = {0,}; |
jmhong | 1:04f46755f8af | 153 | char rReg[2] = {0,}; |
jmhong | 1:04f46755f8af | 154 | int wACK = 0; |
jmhong | 1:04f46755f8af | 155 | int rACK = 0; |
jmhong | 1:04f46755f8af | 156 | int16_t Tem16; |
jmhong | 1:04f46755f8af | 157 | float TempData = 0; |
jmhong | 1:04f46755f8af | 158 | |
jmhong | 1:04f46755f8af | 159 | #define busAddr 0x4F |
jmhong | 1:04f46755f8af | 160 | |
jmhong | 1:04f46755f8af | 161 | #define ID_DATA_ADDR 0x00 |
jmhong | 1:04f46755f8af | 162 | #define ID_CON_ADDR 0x01 |
jmhong | 1:04f46755f8af | 163 | #define ID_REG_ADDR 0x07 |
jmhong | 1:04f46755f8af | 164 | |
jmhong | 2:8861d01a78e4 | 165 | #define RESET_HW_OFF 1 |
jmhong | 2:8861d01a78e4 | 166 | #define RESET_HW_ON 0 |
jmhong | 2:8861d01a78e4 | 167 | |
jmhong | 2:8861d01a78e4 | 168 | #define SPIRIT1_POWER_OFF 1 |
jmhong | 2:8861d01a78e4 | 169 | #define SPIRIT1_POWER_ON 2 |
jmhong | 2:8861d01a78e4 | 170 | |
jmhong | 1:04f46755f8af | 171 | |
jmhong | 1:04f46755f8af | 172 | //RF->이거도 클래스 내부에 넣기 |
jmhong | 1:04f46755f8af | 173 | static volatile bool bRxDoneFlag = false; |
jmhong | 1:04f46755f8af | 174 | static volatile bool bTxDoneFlag = false; |
jmhong | 1:04f46755f8af | 175 | static volatile bool bSendDataFlag = false; |
jmhong | 1:04f46755f8af | 176 | |
jmhong | 1:04f46755f8af | 177 | //************************************************************************************* |
jmhong | 0:c2a57b2f934e | 178 | |
jmhong | 0:c2a57b2f934e | 179 | |
jmhong | 0:c2a57b2f934e | 180 | |
jmhong | 0:c2a57b2f934e | 181 | |
jmhong | 0:c2a57b2f934e | 182 | |
jmhong | 0:c2a57b2f934e | 183 | |
jmhong | 0:c2a57b2f934e | 184 | |
jmhong | 0:c2a57b2f934e | 185 | |
jmhong | 0:c2a57b2f934e | 186 | |
jmhong | 1:04f46755f8af | 187 | //HJM : I2C PullUp 용.. RF IRQ 도 이 핀 이지만 사용안하기 때문에 괜찮음. |
jmhong | 2:8861d01a78e4 | 188 | DigitalOut resetHW(P1_12); |
jmhong | 2:8861d01a78e4 | 189 | //prit1(P1_11); //GPIO27 |
jmhong | 0:c2a57b2f934e | 190 | |
jmhong | 1:04f46755f8af | 191 | bool iTempFlag = false; |
jmhong | 1:04f46755f8af | 192 | bool isTimerInterruptStarted = false; |
jmhong | 1:04f46755f8af | 193 | bool bIs1SecTimerSet = false; |
jmhong | 1:04f46755f8af | 194 | int iTempInitCount = 0; |
jmhong | 1:04f46755f8af | 195 | bool isTempInitOk = false; |
jmhong | 2:8861d01a78e4 | 196 | |
jmhong | 2:8861d01a78e4 | 197 | int iMainCounting = 1; |
jmhong | 2:8861d01a78e4 | 198 | static int iIsResetStartCounting = 0; |
jmhong | 2:8861d01a78e4 | 199 | //static int iIsResetStartCountingInterrupt = 0; |
jmhong | 1:04f46755f8af | 200 | int main(void) |
jmhong | 1:04f46755f8af | 201 | { |
jmhong | 1:04f46755f8af | 202 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 203 | //HJM SUDO code : 진동, 온도, RF 초기화 |
jmhong | 1:04f46755f8af | 204 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 205 | |
jmhong | 1:04f46755f8af | 206 | //필수!!! |
jmhong | 2:8861d01a78e4 | 207 | resetHW.write(RESET_HW_OFF); |
jmhong | 2:8861d01a78e4 | 208 | |
jmhong | 2:8861d01a78e4 | 209 | printf("\n\n FIRMWARE_VERSION : %d.%d.%d\n\n", FIRMWARE_VERSION_MAJOR, FIRMWARE_VERSION_MINOR, FIRMWARE_VERSION_REVISE); |
jmhong | 2:8861d01a78e4 | 210 | |
jmhong | 2:8861d01a78e4 | 211 | |
jmhong | 2:8861d01a78e4 | 212 | |
jmhong | 2:8861d01a78e4 | 213 | |
jmhong | 2:8861d01a78e4 | 214 | // FIRMWARE_VERSION_PRINT(FIRMWARE_VERSION); |
jmhong | 2:8861d01a78e4 | 215 | |
jmhong | 2:8861d01a78e4 | 216 | |
jmhong | 1:04f46755f8af | 217 | |
jmhong | 1:04f46755f8af | 218 | |
jmhong | 1:04f46755f8af | 219 | //진동 init_시작 |
jmhong | 1:04f46755f8af | 220 | // set up SPI interface |
jmhong | 1:04f46755f8af | 221 | adxl362.init_spi(); |
jmhong | 1:04f46755f8af | 222 | // Set up accelerometer |
jmhong | 1:04f46755f8af | 223 | adxl362.init_adxl362(); |
jmhong | 1:04f46755f8af | 224 | |
jmhong | 2:8861d01a78e4 | 225 | // wait_ms(25); |
jmhong | 1:04f46755f8af | 226 | //진동 init_끝 |
jmhong | 1:04f46755f8af | 227 | |
jmhong | 1:04f46755f8af | 228 | |
jmhong | 1:04f46755f8af | 229 | //온도 init_시작 |
jmhong | 1:04f46755f8af | 230 | //Power supply for the sensor is given from GPIO28(VDD_MCU_B). |
jmhong | 2:8861d01a78e4 | 231 | // JMOD Init |
jmhong | 2:8861d01a78e4 | 232 | #ifndef CUBEBITE_TEMPERATURE_DISABLE |
jmhong | 2:8861d01a78e4 | 233 | printf("[Temperature] Init start"); |
jmhong | 1:04f46755f8af | 234 | |
jmhong | 2:8861d01a78e4 | 235 | i2c.frequency(100000); //100khz |
jmhong | 1:04f46755f8af | 236 | wReg[0] = ID_CON_ADDR; |
jmhong | 1:04f46755f8af | 237 | |
jmhong | 1:04f46755f8af | 238 | while(rReg[0] != 0x03) |
jmhong | 1:04f46755f8af | 239 | { |
jmhong | 1:04f46755f8af | 240 | //write 0x00(ID_CON_ADDR) |
jmhong | 1:04f46755f8af | 241 | wReg[1] = 0x00; |
jmhong | 1:04f46755f8af | 242 | wACK = i2c.write(busAddr, wReg, 2); |
jmhong | 0:c2a57b2f934e | 243 | |
jmhong | 1:04f46755f8af | 244 | //read 0x00(ID_CON_ADDR) |
jmhong | 1:04f46755f8af | 245 | wACK = i2c.write(busAddr, wReg, 1); |
jmhong | 1:04f46755f8af | 246 | rACK = i2c.read(busAddr, rReg, 1); |
jmhong | 1:04f46755f8af | 247 | |
jmhong | 1:04f46755f8af | 248 | wait_ms(250); |
jmhong | 1:04f46755f8af | 249 | |
jmhong | 1:04f46755f8af | 250 | //write 0x03(ID_CON_ADDR) |
jmhong | 1:04f46755f8af | 251 | wReg[1] = 0x03; |
jmhong | 1:04f46755f8af | 252 | wACK = i2c.write(busAddr, wReg, 2); |
jmhong | 1:04f46755f8af | 253 | |
jmhong | 1:04f46755f8af | 254 | //read 0x03(ID_CON_ADDR) |
jmhong | 1:04f46755f8af | 255 | wACK = i2c.write(busAddr, wReg, 1); |
jmhong | 1:04f46755f8af | 256 | rACK = i2c.read(busAddr, rReg, 1); |
jmhong | 1:04f46755f8af | 257 | |
jmhong | 1:04f46755f8af | 258 | i2c.write(busAddr, wReg, 2); |
jmhong | 0:c2a57b2f934e | 259 | |
jmhong | 1:04f46755f8af | 260 | if(rReg[0] == 0x03) |
jmhong | 1:04f46755f8af | 261 | { |
jmhong | 2:8861d01a78e4 | 262 | // printf(" (Vib Success!!)\n\n"); |
jmhong | 0:c2a57b2f934e | 263 | |
jmhong | 1:04f46755f8af | 264 | //write 0x00(ID_CON_ADDR) |
jmhong | 1:04f46755f8af | 265 | wReg[1] = 0x00; |
jmhong | 1:04f46755f8af | 266 | wACK = i2c.write(busAddr, wReg, 2); |
jmhong | 1:04f46755f8af | 267 | isTempInitOk = true; |
jmhong | 2:8861d01a78e4 | 268 | // wait_ms(250); |
jmhong | 2:8861d01a78e4 | 269 | // wait_ms(60); |
jmhong | 2:8861d01a78e4 | 270 | wait_ms(150); |
jmhong | 1:04f46755f8af | 271 | } |
jmhong | 2:8861d01a78e4 | 272 | else if (10 == iTempInitCount) |
jmhong | 1:04f46755f8af | 273 | { |
jmhong | 1:04f46755f8af | 274 | isTempInitOk = false; |
jmhong | 1:04f46755f8af | 275 | break; |
jmhong | 1:04f46755f8af | 276 | } |
jmhong | 1:04f46755f8af | 277 | else |
jmhong | 1:04f46755f8af | 278 | { |
jmhong | 1:04f46755f8af | 279 | printf("."); |
jmhong | 1:04f46755f8af | 280 | ++iTempInitCount; |
jmhong | 1:04f46755f8af | 281 | } |
jmhong | 1:04f46755f8af | 282 | |
jmhong | 2:8861d01a78e4 | 283 | // wait_ms(500); |
jmhong | 2:8861d01a78e4 | 284 | // wait_ms(80); |
jmhong | 2:8861d01a78e4 | 285 | wait_ms(200); |
jmhong | 1:04f46755f8af | 286 | } |
jmhong | 1:04f46755f8af | 287 | #endif |
jmhong | 2:8861d01a78e4 | 288 | printf("(OK)\n"); |
jmhong | 1:04f46755f8af | 289 | //온도 init_끝 |
jmhong | 1:04f46755f8af | 290 | |
jmhong | 1:04f46755f8af | 291 | |
jmhong | 1:04f46755f8af | 292 | |
jmhong | 2:8861d01a78e4 | 293 | |
jmhong | 1:04f46755f8af | 294 | //RF init_시작 |
jmhong | 2:8861d01a78e4 | 295 | // myspirit.attach_irq_callback(callback_func); |
jmhong | 1:04f46755f8af | 296 | if (myspirit.on()) |
jmhong | 1:04f46755f8af | 297 | { |
jmhong | 1:04f46755f8af | 298 | printf("ERROR.\n"); |
jmhong | 1:04f46755f8af | 299 | } |
jmhong | 1:04f46755f8af | 300 | else |
jmhong | 1:04f46755f8af | 301 | { |
jmhong | 1:04f46755f8af | 302 | printf("OK.\n"); |
jmhong | 1:04f46755f8af | 303 | } |
jmhong | 1:04f46755f8af | 304 | //RF init_끝 |
jmhong | 1:04f46755f8af | 305 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 306 | |
jmhong | 1:04f46755f8af | 307 | |
jmhong | 1:04f46755f8af | 308 | |
jmhong | 1:04f46755f8af | 309 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 310 | //HJM SUDO code : 1초 타이머 인터럽트 생성, 1초 간격 호출 함수 : UserTimerInterrupt() |
jmhong | 1:04f46755f8af | 311 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 312 | // Timeout timeoutUserInterrupt; //1번만 실행 |
jmhong | 2:8861d01a78e4 | 313 | Ticker timeoutUserInterrupt; //매번 실행 |
jmhong | 2:8861d01a78e4 | 314 | // Ticker timeoutUserInterrupt2; //매번 실행 |
jmhong | 1:04f46755f8af | 315 | // timeoutUserInterrupt.attach(&UserTimerInterrupt, 1.0); //1 sec |
jmhong | 2:8861d01a78e4 | 316 | timeoutUserInterrupt.attach(&UserTimerInterrupt, 900.0); //15 minuite, reset test |
jmhong | 2:8861d01a78e4 | 317 | // timeoutUserInterrupt2.attach(&UserTimerInterrupt2, 1.0); //1 sec |
jmhong | 2:8861d01a78e4 | 318 | // timeoutUserInterrupt.attach(&UserTimerInterrupt, 5.0); //test, 5sec |
jmhong | 1:04f46755f8af | 319 | //************************************************************************************* |
jmhong | 1:04f46755f8af | 320 | |
jmhong | 2:8861d01a78e4 | 321 | // wait(1); |
jmhong | 1:04f46755f8af | 322 | |
jmhong | 1:04f46755f8af | 323 | |
jmhong | 1:04f46755f8af | 324 | while(1) |
jmhong | 1:04f46755f8af | 325 | { |
jmhong | 2:8861d01a78e4 | 326 | __WFE(); //HJM : sleep 모드 ON |
jmhong | 1:04f46755f8af | 327 | |
jmhong | 1:04f46755f8af | 328 | UserTimerInterrupt_Execution(); |
jmhong | 2:8861d01a78e4 | 329 | UserTimerInterrupt_Execution2(); |
jmhong | 2:8861d01a78e4 | 330 | |
jmhong | 2:8861d01a78e4 | 331 | // myspirit.off(); |
jmhong | 2:8861d01a78e4 | 332 | // myspirit.on(); |
jmhong | 2:8861d01a78e4 | 333 | |
jmhong | 2:8861d01a78e4 | 334 | //if (0 == (iMainCounting % 10)) |
jmhong | 2:8861d01a78e4 | 335 | // { |
jmhong | 2:8861d01a78e4 | 336 | //// myspirit.reset_board(); |
jmhong | 2:8861d01a78e4 | 337 | //// iMainCounting = 0; |
jmhong | 2:8861d01a78e4 | 338 | // iMainCounting = 1; |
jmhong | 2:8861d01a78e4 | 339 | // myspirit.off(); |
jmhong | 2:8861d01a78e4 | 340 | // myspirit.on(); |
jmhong | 2:8861d01a78e4 | 341 | // } |
jmhong | 2:8861d01a78e4 | 342 | |
jmhong | 1:04f46755f8af | 343 | if (true == isTimerInterruptStarted) |
jmhong | 1:04f46755f8af | 344 | { |
jmhong | 1:04f46755f8af | 345 | isTimerInterruptStarted = false; |
jmhong | 1:04f46755f8af | 346 | SendData(myspirit); |
jmhong | 1:04f46755f8af | 347 | } |
jmhong | 1:04f46755f8af | 348 | } |
jmhong | 0:c2a57b2f934e | 349 | |
jmhong | 0:c2a57b2f934e | 350 | |
jmhong | 1:04f46755f8af | 351 | // return 0; //unreachable |
jmhong | 1:04f46755f8af | 352 | } |
jmhong | 0:c2a57b2f934e | 353 | |
jmhong | 0:c2a57b2f934e | 354 | static void callback_func(int event) |
jmhong | 0:c2a57b2f934e | 355 | { |
jmhong | 0:c2a57b2f934e | 356 | #ifdef CUBEBITE_DEBUG |
jmhong | 0:c2a57b2f934e | 357 | printf("[CUBEBITE] callback_func(int event) \n"); |
jmhong | 0:c2a57b2f934e | 358 | #endif |
jmhong | 0:c2a57b2f934e | 359 | |
jmhong | 0:c2a57b2f934e | 360 | if(event == SimpleSpirit1::RX_DONE) |
jmhong | 0:c2a57b2f934e | 361 | { |
jmhong | 0:c2a57b2f934e | 362 | bRxDoneFlag = 1; |
jmhong | 0:c2a57b2f934e | 363 | } |
jmhong | 0:c2a57b2f934e | 364 | else if (event == SimpleSpirit1::TX_DONE) |
jmhong | 0:c2a57b2f934e | 365 | { |
jmhong | 0:c2a57b2f934e | 366 | bTxDoneFlag = 1; |
jmhong | 0:c2a57b2f934e | 367 | } |
jmhong | 0:c2a57b2f934e | 368 | } |
jmhong | 0:c2a57b2f934e | 369 | |
jmhong | 0:c2a57b2f934e | 370 | |
jmhong | 0:c2a57b2f934e | 371 | |
jmhong | 1:04f46755f8af | 372 | void UserTimerInterrupt(void) |
jmhong | 0:c2a57b2f934e | 373 | { |
jmhong | 2:8861d01a78e4 | 374 | resetHW.write(RESET_HW_ON); |
jmhong | 1:04f46755f8af | 375 | |
jmhong | 1:04f46755f8af | 376 | return; |
jmhong | 0:c2a57b2f934e | 377 | } |
jmhong | 0:c2a57b2f934e | 378 | |
jmhong | 0:c2a57b2f934e | 379 | |
jmhong | 2:8861d01a78e4 | 380 | |
jmhong | 2:8861d01a78e4 | 381 | int UserTimerInterrupt_Execution(void) |
jmhong | 2:8861d01a78e4 | 382 | { |
jmhong | 2:8861d01a78e4 | 383 | if (true == isTempInitOk) |
jmhong | 2:8861d01a78e4 | 384 | { |
jmhong | 2:8861d01a78e4 | 385 | wReg[0] = ID_DATA_ADDR; |
jmhong | 2:8861d01a78e4 | 386 | |
jmhong | 2:8861d01a78e4 | 387 | i2c.write(busAddr, wReg, 1); |
jmhong | 2:8861d01a78e4 | 388 | i2c.read(busAddr, rReg, 2); |
jmhong | 2:8861d01a78e4 | 389 | |
jmhong | 2:8861d01a78e4 | 390 | Tem16 = (rReg[0] << 8) | (rReg[1]); |
jmhong | 2:8861d01a78e4 | 391 | Tem16 >>= 5; |
jmhong | 2:8861d01a78e4 | 392 | TempData = Tem16; |
jmhong | 2:8861d01a78e4 | 393 | |
jmhong | 2:8861d01a78e4 | 394 | TempData = TempData *0.125; |
jmhong | 2:8861d01a78e4 | 395 | } |
jmhong | 2:8861d01a78e4 | 396 | |
jmhong | 2:8861d01a78e4 | 397 | return 0; |
jmhong | 2:8861d01a78e4 | 398 | } |
jmhong | 2:8861d01a78e4 | 399 | |
jmhong | 2:8861d01a78e4 | 400 | |
jmhong | 1:04f46755f8af | 401 | volatile int iFunctionCallCounting = 0; |
jmhong | 2:8861d01a78e4 | 402 | bool isTempOk = false; |
jmhong | 2:8861d01a78e4 | 403 | int UserTimerInterrupt_Execution2(void) |
jmhong | 1:04f46755f8af | 404 | { |
jmhong | 1:04f46755f8af | 405 | // printf("UserTimerInterrupt_Execution 호출, dataCount : [%d]\n", dataCount); |
jmhong | 1:04f46755f8af | 406 | ++iFunctionCallCounting; |
jmhong | 0:c2a57b2f934e | 407 | |
jmhong | 1:04f46755f8af | 408 | if (false == isTimerInterruptStarted) |
jmhong | 2:8861d01a78e4 | 409 | { |
jmhong | 1:04f46755f8af | 410 | //진동 |
jmhong | 2:8861d01a78e4 | 411 | adxl362.ACC_GetXYZ8(&x8, &y8, &z8); |
jmhong | 1:04f46755f8af | 412 | if (0 == x8) |
jmhong | 1:04f46755f8af | 413 | { |
jmhong | 1:04f46755f8af | 414 | uiSendBuf[dataCount++] = '0'; |
jmhong | 1:04f46755f8af | 415 | uiSendBuf[dataCount++] = 'x'; |
jmhong | 1:04f46755f8af | 416 | uiSendBuf[dataCount++] = '@'; |
jmhong | 1:04f46755f8af | 417 | } |
jmhong | 1:04f46755f8af | 418 | else |
jmhong | 1:04f46755f8af | 419 | { |
jmhong | 1:04f46755f8af | 420 | int8tX8Result = x8; |
jmhong | 1:04f46755f8af | 421 | |
jmhong | 1:04f46755f8af | 422 | uiSendBuf[dataCount++] = (uint8_t)int8tX8Result; |
jmhong | 2:8861d01a78e4 | 423 | } |
jmhong | 1:04f46755f8af | 424 | if (0 == y8) |
jmhong | 1:04f46755f8af | 425 | { |
jmhong | 1:04f46755f8af | 426 | uiSendBuf[dataCount++] = '0'; |
jmhong | 1:04f46755f8af | 427 | uiSendBuf[dataCount++] = 'y'; |
jmhong | 1:04f46755f8af | 428 | uiSendBuf[dataCount++] = '@'; |
jmhong | 1:04f46755f8af | 429 | } |
jmhong | 1:04f46755f8af | 430 | else |
jmhong | 1:04f46755f8af | 431 | { |
jmhong | 1:04f46755f8af | 432 | int8tY8Result = y8; |
jmhong | 1:04f46755f8af | 433 | |
jmhong | 1:04f46755f8af | 434 | uiSendBuf[dataCount++] = (uint8_t)int8tY8Result; |
jmhong | 2:8861d01a78e4 | 435 | } |
jmhong | 1:04f46755f8af | 436 | if (0 == z8) |
jmhong | 1:04f46755f8af | 437 | { |
jmhong | 1:04f46755f8af | 438 | uiSendBuf[dataCount++] = '0'; |
jmhong | 1:04f46755f8af | 439 | uiSendBuf[dataCount++] = 'z'; |
jmhong | 1:04f46755f8af | 440 | uiSendBuf[dataCount++] = '@'; |
jmhong | 1:04f46755f8af | 441 | } |
jmhong | 1:04f46755f8af | 442 | else |
jmhong | 1:04f46755f8af | 443 | { |
jmhong | 1:04f46755f8af | 444 | int8tZ8Result = z8; |
jmhong | 1:04f46755f8af | 445 | |
jmhong | 1:04f46755f8af | 446 | uiSendBuf[dataCount++] = (uint8_t)int8tZ8Result; |
jmhong | 2:8861d01a78e4 | 447 | } |
jmhong | 0:c2a57b2f934e | 448 | |
jmhong | 2:8861d01a78e4 | 449 | wait(0.025); // 25ms, Wait is required in this mode |
jmhong | 1:04f46755f8af | 450 | |
jmhong | 1:04f46755f8af | 451 | //온도 |
jmhong | 1:04f46755f8af | 452 | // temperature data receive |
jmhong | 1:04f46755f8af | 453 | if (true == isTempInitOk) |
jmhong | 2:8861d01a78e4 | 454 | { |
jmhong | 2:8861d01a78e4 | 455 | // wReg[0] = ID_DATA_ADDR; |
jmhong | 2:8861d01a78e4 | 456 | // |
jmhong | 2:8861d01a78e4 | 457 | // i2c.write(busAddr, wReg, 1); |
jmhong | 2:8861d01a78e4 | 458 | // i2c.read(busAddr, rReg, 2); |
jmhong | 2:8861d01a78e4 | 459 | // |
jmhong | 2:8861d01a78e4 | 460 | // Tem16 = (rReg[0] << 8) | (rReg[1]); |
jmhong | 2:8861d01a78e4 | 461 | // Tem16 >>= 5; |
jmhong | 2:8861d01a78e4 | 462 | // TempData = Tem16; |
jmhong | 2:8861d01a78e4 | 463 | // |
jmhong | 2:8861d01a78e4 | 464 | // TempData = TempData *0.125; |
jmhong | 1:04f46755f8af | 465 | |
jmhong | 1:04f46755f8af | 466 | if (0 == rReg[0]) |
jmhong | 1:04f46755f8af | 467 | { |
jmhong | 2:8861d01a78e4 | 468 | uiSendBuf[dataCount++] = '@'; |
jmhong | 1:04f46755f8af | 469 | uiSendBuf[dataCount++] = '0'; |
jmhong | 2:8861d01a78e4 | 470 | // uiSendBuf[dataCount++] = '1'; |
jmhong | 1:04f46755f8af | 471 | } |
jmhong | 1:04f46755f8af | 472 | else |
jmhong | 1:04f46755f8af | 473 | { |
jmhong | 1:04f46755f8af | 474 | uiSendBuf[dataCount++] = (uint8_t)rReg[0]; |
jmhong | 1:04f46755f8af | 475 | } |
jmhong | 1:04f46755f8af | 476 | |
jmhong | 2:8861d01a78e4 | 477 | |
jmhong | 2:8861d01a78e4 | 478 | |
jmhong | 1:04f46755f8af | 479 | if (0 == rReg[1]) |
jmhong | 1:04f46755f8af | 480 | { |
jmhong | 2:8861d01a78e4 | 481 | uiSendBuf[dataCount++] = '@'; |
jmhong | 1:04f46755f8af | 482 | uiSendBuf[dataCount++] = '0'; |
jmhong | 2:8861d01a78e4 | 483 | // uiSendBuf[dataCount++] = '2'; |
jmhong | 1:04f46755f8af | 484 | } |
jmhong | 1:04f46755f8af | 485 | else |
jmhong | 1:04f46755f8af | 486 | { |
jmhong | 1:04f46755f8af | 487 | uiSendBuf[dataCount++] = (uint8_t)rReg[1]; |
jmhong | 1:04f46755f8af | 488 | } |
jmhong | 1:04f46755f8af | 489 | } |
jmhong | 1:04f46755f8af | 490 | else |
jmhong | 1:04f46755f8af | 491 | { |
jmhong | 2:8861d01a78e4 | 492 | uiSendBuf[dataCount++] = '@'; |
jmhong | 1:04f46755f8af | 493 | uiSendBuf[dataCount++] = '0'; |
jmhong | 2:8861d01a78e4 | 494 | // uiSendBuf[dataCount++] = '1'; |
jmhong | 2:8861d01a78e4 | 495 | uiSendBuf[dataCount++] = '@'; |
jmhong | 2:8861d01a78e4 | 496 | uiSendBuf[dataCount++] = '0'; |
jmhong | 2:8861d01a78e4 | 497 | // uiSendBuf[dataCount++] = '2'; |
jmhong | 1:04f46755f8af | 498 | } |
jmhong | 0:c2a57b2f934e | 499 | |
jmhong | 1:04f46755f8af | 500 | uiSendBuf[dataCount++] = '#'; |
jmhong | 1:04f46755f8af | 501 | uiSendBuf[dataCount++] = '#'; |
jmhong | 0:c2a57b2f934e | 502 | |
jmhong | 1:04f46755f8af | 503 | wait(0.025); // 25ms, Wait is required in this mode |
jmhong | 0:c2a57b2f934e | 504 | } |
jmhong | 1:04f46755f8af | 505 | |
jmhong | 2:8861d01a78e4 | 506 | |
jmhong | 2:8861d01a78e4 | 507 | |
jmhong | 2:8861d01a78e4 | 508 | |
jmhong | 2:8861d01a78e4 | 509 | |
jmhong | 2:8861d01a78e4 | 510 | // if (iFunctionCallCounting >= 10) //10번의 측정이 끝나면, |
jmhong | 2:8861d01a78e4 | 511 | if (iFunctionCallCounting >= 8) //8번의 측정이 끝나면, 180703 온도 0도 표현시 버그 발생.. |
jmhong | 1:04f46755f8af | 512 | { |
jmhong | 1:04f46755f8af | 513 | isTimerInterruptStarted = true; |
jmhong | 1:04f46755f8af | 514 | // printf("if in!!\n"); |
jmhong | 1:04f46755f8af | 515 | |
jmhong | 1:04f46755f8af | 516 | uiSendBuf[dataCount++] = '*'; |
jmhong | 1:04f46755f8af | 517 | uiSendBuf[dataCount++] = '*'; |
jmhong | 1:04f46755f8af | 518 | |
jmhong | 1:04f46755f8af | 519 | uiSendBuf[dataCount] = CUBEBITE_SENSOR_UUID; |
jmhong | 1:04f46755f8af | 520 | |
jmhong | 1:04f46755f8af | 521 | iFunctionCallCounting = 0; |
jmhong | 1:04f46755f8af | 522 | } |
jmhong | 1:04f46755f8af | 523 | |
jmhong | 1:04f46755f8af | 524 | return 0; |
jmhong | 0:c2a57b2f934e | 525 | } |
jmhong | 0:c2a57b2f934e | 526 | |
jmhong | 0:c2a57b2f934e | 527 | |
jmhong | 0:c2a57b2f934e | 528 | |
jmhong | 0:c2a57b2f934e | 529 | |
jmhong | 0:c2a57b2f934e | 530 | |
jmhong | 0:c2a57b2f934e | 531 | |
jmhong | 1:04f46755f8af | 532 | |
jmhong | 1:04f46755f8af | 533 | |
jmhong | 1:04f46755f8af | 534 | |
jmhong | 0:c2a57b2f934e | 535 | |
jmhong | 0:c2a57b2f934e | 536 | |
jmhong | 0:c2a57b2f934e | 537 | |
jmhong | 0:c2a57b2f934e | 538 | |
jmhong | 0:c2a57b2f934e | 539 | |
jmhong | 0:c2a57b2f934e | 540 | |
jmhong | 0:c2a57b2f934e | 541 | /** |
jmhong | 0:c2a57b2f934e | 542 | * @brief SendData |
jmhong | 0:c2a57b2f934e | 543 | * @param None |
jmhong | 0:c2a57b2f934e | 544 | * @retval None |
jmhong | 0:c2a57b2f934e | 545 | */ |
jmhong | 0:c2a57b2f934e | 546 | static int SendData(SimpleSpirit1& myspirit) |
jmhong | 0:c2a57b2f934e | 547 | { |
jmhong | 2:8861d01a78e4 | 548 | // ++iMainCounting; |
jmhong | 2:8861d01a78e4 | 549 | // printf("iMainCounting : %d\n", iMainCounting); |
jmhong | 2:8861d01a78e4 | 550 | // ++iIsResetStartCountingInterrupt; |
jmhong | 2:8861d01a78e4 | 551 | |
jmhong | 2:8861d01a78e4 | 552 | isTempOk = false; |
jmhong | 1:04f46755f8af | 553 | #ifdef CUBEBITE_DEBUG |
jmhong | 1:04f46755f8af | 554 | printf("=========================================\n"); |
jmhong | 1:04f46755f8af | 555 | #endif //CUBEBITE_DEBUG |
jmhong | 0:c2a57b2f934e | 556 | |
jmhong | 1:04f46755f8af | 557 | #ifdef CUBEBITE_DEBUG |
jmhong | 1:04f46755f8af | 558 | printf("[CUBEBITE] SendData() 호출 됨.\n"); |
jmhong | 1:04f46755f8af | 559 | #endif //CUBEBITE_DEBUG |
jmhong | 1:04f46755f8af | 560 | |
jmhong | 1:04f46755f8af | 561 | int iRet; |
jmhong | 2:8861d01a78e4 | 562 | |
jmhong | 2:8861d01a78e4 | 563 | // while(1 == myspirit.channel_clear()); |
jmhong | 2:8861d01a78e4 | 564 | // while(myspirit.is_receiving()); /* wait for ongoing RX ends 180110 HJM 아마 이 전에 보내던 거 마저 다 보내려고 하는 거 같다. */ |
jmhong | 2:8861d01a78e4 | 565 | |
jmhong | 2:8861d01a78e4 | 566 | |
jmhong | 2:8861d01a78e4 | 567 | |
jmhong | 1:04f46755f8af | 568 | |
jmhong | 0:c2a57b2f934e | 569 | size_t curr_len = strlen((const char*)uiSendBuf) + 1; |
jmhong | 1:04f46755f8af | 570 | // printf("curr_len : [%d]\n", curr_len); |
jmhong | 1:04f46755f8af | 571 | |
jmhong | 1:04f46755f8af | 572 | |
jmhong | 2:8861d01a78e4 | 573 | |
jmhong | 1:04f46755f8af | 574 | iRet = myspirit.send(uiSendBuf, curr_len); |
jmhong | 1:04f46755f8af | 575 | |
jmhong | 1:04f46755f8af | 576 | |
jmhong | 1:04f46755f8af | 577 | dataCount = 0; |
jmhong | 1:04f46755f8af | 578 | for (int iTemp = 0; iTemp < TEST_STR_LEN; ++iTemp) |
jmhong | 1:04f46755f8af | 579 | { |
jmhong | 1:04f46755f8af | 580 | uiSendBuf[iTemp] = 0; |
jmhong | 1:04f46755f8af | 581 | } |
jmhong | 1:04f46755f8af | 582 | |
jmhong | 2:8861d01a78e4 | 583 | printf("iIsResetStartCounting : %d\n", iIsResetStartCounting); |
jmhong | 2:8861d01a78e4 | 584 | if (10 < iIsResetStartCounting) |
jmhong | 2:8861d01a78e4 | 585 | {//HJM : 아예 뻗으면 하드웨어 리셋으로 |
jmhong | 2:8861d01a78e4 | 586 | iIsResetStartCounting = 0; |
jmhong | 2:8861d01a78e4 | 587 | //180709 HJM : 하드웨어 리셋이 아니고 SPIRIT1 만 리셋하는 걸로 수정 |
jmhong | 2:8861d01a78e4 | 588 | resetHW.write(RESET_HW_ON); |
jmhong | 1:04f46755f8af | 589 | |
jmhong | 2:8861d01a78e4 | 590 | return RADIO_TX_ERR_RESET; |
jmhong | 2:8861d01a78e4 | 591 | } |
jmhong | 2:8861d01a78e4 | 592 | |
jmhong | 2:8861d01a78e4 | 593 | |
jmhong | 0:c2a57b2f934e | 594 | if (iRet == RADIO_TX_OK) |
jmhong | 0:c2a57b2f934e | 595 | { |
jmhong | 2:8861d01a78e4 | 596 | iIsResetStartCounting = 0; |
jmhong | 1:04f46755f8af | 597 | return RADIO_TX_OK; |
jmhong | 0:c2a57b2f934e | 598 | } |
jmhong | 0:c2a57b2f934e | 599 | else if (iRet == RADIO_TX_ERR) |
jmhong | 0:c2a57b2f934e | 600 | { |
jmhong | 2:8861d01a78e4 | 601 | myspirit.off(); |
jmhong | 2:8861d01a78e4 | 602 | myspirit.on(); |
jmhong | 2:8861d01a78e4 | 603 | //HJM : 테스트 !!, |
jmhong | 2:8861d01a78e4 | 604 | // while(1 == myspirit.channel_clear()); |
jmhong | 2:8861d01a78e4 | 605 | ++iIsResetStartCounting; |
jmhong | 2:8861d01a78e4 | 606 | return RADIO_TX_ERR; |
jmhong | 0:c2a57b2f934e | 607 | } |
jmhong | 0:c2a57b2f934e | 608 | else if (iRet == RADIO_TX_COLLISION) |
jmhong | 1:04f46755f8af | 609 | { |
jmhong | 1:04f46755f8af | 610 | return RADIO_TX_COLLISION; |
jmhong | 0:c2a57b2f934e | 611 | } |
jmhong | 0:c2a57b2f934e | 612 | else if (iRet == RADIO_TX_NOACK) |
jmhong | 0:c2a57b2f934e | 613 | { |
jmhong | 2:8861d01a78e4 | 614 | ++iIsResetStartCounting; |
jmhong | 1:04f46755f8af | 615 | return RADIO_TX_NOACK; |
jmhong | 0:c2a57b2f934e | 616 | } |
jmhong | 1:04f46755f8af | 617 | else if (iRet == RADIO_TX_ERR_RESET) |
jmhong | 1:04f46755f8af | 618 | { |
jmhong | 2:8861d01a78e4 | 619 | printf("RADIO_TX_ERR_RESET return.\n"); |
jmhong | 2:8861d01a78e4 | 620 | ++iIsResetStartCounting; |
jmhong | 2:8861d01a78e4 | 621 | |
jmhong | 2:8861d01a78e4 | 622 | //소프트웨어 리셋 |
jmhong | 1:04f46755f8af | 623 | myspirit.reset_board(); |
jmhong | 1:04f46755f8af | 624 | myspirit.off(); |
jmhong | 1:04f46755f8af | 625 | myspirit.on(); |
jmhong | 2:8861d01a78e4 | 626 | |
jmhong | 2:8861d01a78e4 | 627 | //180703 HJM : 하드웨어 리셋으로 바꿈 |
jmhong | 2:8861d01a78e4 | 628 | // resetHW.write(SPIRIT1_POWER_OFF); |
jmhong | 2:8861d01a78e4 | 629 | return RADIO_TX_ERR_RESET; |
jmhong | 1:04f46755f8af | 630 | } |
jmhong | 1:04f46755f8af | 631 | |
jmhong | 1:04f46755f8af | 632 | dataCount = 0; |
jmhong | 1:04f46755f8af | 633 | |
jmhong | 1:04f46755f8af | 634 | for (int iTemp = 0; iTemp < TEST_STR_LEN; ++iTemp) |
jmhong | 1:04f46755f8af | 635 | { |
jmhong | 1:04f46755f8af | 636 | uiSendBuf[iTemp] = 0; |
jmhong | 1:04f46755f8af | 637 | } |
jmhong | 2:8861d01a78e4 | 638 | |
jmhong | 2:8861d01a78e4 | 639 | |
jmhong | 2:8861d01a78e4 | 640 | |
jmhong | 2:8861d01a78e4 | 641 | |
jmhong | 0:c2a57b2f934e | 642 | |
jmhong | 0:c2a57b2f934e | 643 | #ifdef CUBEBITE_DEBUG |
jmhong | 0:c2a57b2f934e | 644 | printf("[CUBEBITE] SendData() 호출 끝.\n"); |
jmhong | 0:c2a57b2f934e | 645 | #endif |
jmhong | 0:c2a57b2f934e | 646 | |
jmhong | 1:04f46755f8af | 647 | return -10; |
jmhong | 0:c2a57b2f934e | 648 | } |
jmhong | 0:c2a57b2f934e | 649 | |
jmhong | 0:c2a57b2f934e | 650 | |
jmhong | 0:c2a57b2f934e | 651 |