RT-USB-9AXIS-00
main.c
[詳解]
1 
13 //#define VER_1_0_COMPATIBLE_NO_MODE_SELECT
14 
15 //OHTER
16 #include "LPC13xx.h"
17 #include "core_cm3.h"
18 #include "type.h"
19 //PERIHERAL
20 #include "ad.h"
21 #include "debug.h"
22 #include "i2c.h"
23 #include "io.h"
24 #include "pwm.h"
25 #include "SystemTickTimer.h"
26 #include "timer.h"
27 #include "usbTransmission.h"
28 #include "uart.h"
29 //MAIN
30 #include "MainFunction.h"
31 #include "mpu9250.h"
32 #include "UserInterface.h"
33 #include "EEPROM_24LC16BT_I.h"
34 
35 //MODE
36 #include "modeSelect.h"
37 //USB
38 #include "usb.h"
39 #include "usbcfg.h"
40 #include "usbhw.h"
41 #include "usbcore.h"
42 #include "cdc.h"
43 #include "cdcuser.h"
44 
46 void init(void);
48 
58 int main (void)
59 {
60  init();
61  flashRedLED(50,300);//USBの接続使用
62  tryUSBConnect(); //USB接続を試みる
63  setSendDataEnable(1); //データを送信開始
64 
65  while(1)
66  {
67  if(isUSBConfig() == 1) flashRedLED(300,300);//USBの接続使用
68  else flashRedLED(100,100); //USBの接続不使用
69 
70 
71  #ifndef VER_1_0_COMPATIBLE_NO_MODE_SELECT
72  if(getSWcount()>3000){
73  while(getSWcount() != 0);
76  //LEDを一回だけ点滅させる
77  wait1msec(500);
78  turnRedLED(1);
79  wait1msec(500);
80  turnRedLED(0);
81  wait1msec(500);
82  flashRedLED(30,30);
83  //モードセレクトを呼び出す
84  //ver1.0と互換性を持たせる場合はモード選択は行わない
85 
86  modeSelect();
88  setSendDataEnable(1); //データを送信開始
89  }
90  #endif
91  }
92 
93  return 0;
94 }
95 
102 void init(void)
103 {
104  //IOポートの初期化
105  initIO();
106  //LEDを一回だけ点滅させる
107  turnRedLED(1);
108  wait1msec(500);
109  turnRedLED(0);
110  wait1msec(500);
111  //各ペリフェラルの初期化
112  USBIOClkConfig();
113  initTimer32_0();
114  initTimer32_1();
115  USB_Init();
116  while (!I2CInit((uint32_t)I2CMASTER)); // I2Cの初期化が終わるまで待つ
117  //9軸センサの初期化
118  initMPU9250();
119  initAK8963();
121  //出力データの形式をEEPROMから読み込みセットする
123 
124  //UIの初期化
125  initUI();
127 
128 }
129 
130 /******************************************************************************
131 ** End Of File
132 ******************************************************************************/
void init(void)
Definition: main.c:102
uint8_t readEEPROMOutputMode(void)
Definition: MainFunction.c:82
void stopTimerInterruptMainFunction(void)
Definition: MainFunction.c:52
void setOutputMode(uint8_t mode)
Definition: MainFunction.c:92
void initUI(void)
Definition: UserInterface.c:53
uint16_t getSWcount(void)
Definition: UserInterface.c:78
void initOffsetByEEPROM()
Definition: mpu9250.c:1040
void startTimerInterruptMainFunction(void)
Definition: MainFunction.c:39
void initMPU9250(void)
Definition: mpu9250.c:72
CMSIS Cortex-M3 Core Peripheral Access Layer Header File.
void flashRedLED(uint16_t on_count, uint16_t off_count)
void initAK8963(void)
Definition: mpu9250.c:136
LED,SW,電源電圧の監視等の機能の実装
void turnRedLED(uint8_t state)
void setSendDataEnable(uint8_t en)
Definition: MainFunction.c:63
int main(void)
Definition: main.c:58