a

Dependencies:   HCSR04_2 MPU6050_2 mbed SDFileSystem3

Fork of AutoFlight2018_Control by 航空研究会

Committer:
TUATBM
Date:
Fri Sep 07 03:42:49 2018 +0000
Revision:
1:09a162f4f6ce
Parent:
0:813f5cd20cf1
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
HARUKIDELTA 0:813f5cd20cf1 1 #ifndef MBED_SUBS_H
HARUKIDELTA 0:813f5cd20cf1 2 #define MBED_SUBS_H
HARUKIDELTA 0:813f5cd20cf1 3
HARUKIDELTA 0:813f5cd20cf1 4
HARUKIDELTA 0:813f5cd20cf1 5 #include "mbed.h"
HARUKIDELTA 0:813f5cd20cf1 6
HARUKIDELTA 0:813f5cd20cf1 7 #define SBUS_SIGNAL_OK 0x00
HARUKIDELTA 0:813f5cd20cf1 8 #define SBUS_SIGNAL_LOST 0x01
HARUKIDELTA 0:813f5cd20cf1 9 #define SBUS_SIGNAL_FAILSAFE 0x03
HARUKIDELTA 0:813f5cd20cf1 10
HARUKIDELTA 0:813f5cd20cf1 11 typedef void (*V_FUNC_V)(void);
HARUKIDELTA 0:813f5cd20cf1 12
HARUKIDELTA 0:813f5cd20cf1 13 class SBUS
HARUKIDELTA 0:813f5cd20cf1 14 {
HARUKIDELTA 0:813f5cd20cf1 15 public:
HARUKIDELTA 0:813f5cd20cf1 16 uint16_t manualpwm[8]; //pwmの数値 1000~2000で表記 main文ではこの変数を使う
HARUKIDELTA 0:813f5cd20cf1 17 uint8_t failsafe_status;
HARUKIDELTA 0:813f5cd20cf1 18 bool flg_ch_update;
HARUKIDELTA 0:813f5cd20cf1 19
HARUKIDELTA 0:813f5cd20cf1 20 //コンストラクタ
HARUKIDELTA 0:813f5cd20cf1 21 SBUS();
HARUKIDELTA 0:813f5cd20cf1 22 SBUS(PinName tx, PinName rx);
HARUKIDELTA 0:813f5cd20cf1 23 //デストラクタ
HARUKIDELTA 0:813f5cd20cf1 24 virtual ~SBUS(); //この場合virtualをつける必要はなさそうだが参考プログラムについてたため一応入れる
HARUKIDELTA 0:813f5cd20cf1 25
HARUKIDELTA 0:813f5cd20cf1 26 void initialize(void); //初期化
HARUKIDELTA 0:813f5cd20cf1 27 void startInterrupt(void); //シリアル割り込み開始
HARUKIDELTA 0:813f5cd20cf1 28 //void stopInterrupt(void);
HARUKIDELTA 0:813f5cd20cf1 29 void setLastfuncPoint(void (*func)(void)); //割り込み処理実行後に行う関数を設定 PWM出力用
HARUKIDELTA 0:813f5cd20cf1 30
HARUKIDELTA 0:813f5cd20cf1 31
HARUKIDELTA 0:813f5cd20cf1 32 private:
HARUKIDELTA 0:813f5cd20cf1 33 RawSerial *rawserial_p;
HARUKIDELTA 0:813f5cd20cf1 34 RawSerial &rawserial;
HARUKIDELTA 0:813f5cd20cf1 35
HARUKIDELTA 0:813f5cd20cf1 36 volatile uint8_t buf_sbus[25];
HARUKIDELTA 0:813f5cd20cf1 37 volatile int cnt_sbus;
HARUKIDELTA 0:813f5cd20cf1 38 uint8_t byte_in_sbus;
HARUKIDELTA 0:813f5cd20cf1 39 uint8_t bit_in_sbus;
HARUKIDELTA 0:813f5cd20cf1 40 uint8_t ch;
HARUKIDELTA 0:813f5cd20cf1 41 uint8_t bit_in_channel;
HARUKIDELTA 0:813f5cd20cf1 42 int16_t channels[18]; //元はstatic int16_t channels[18];
HARUKIDELTA 0:813f5cd20cf1 43 V_FUNC_V lastfunc;
HARUKIDELTA 0:813f5cd20cf1 44
HARUKIDELTA 0:813f5cd20cf1 45 void func_interrupt(void); //シリアル割り込みで実行する関数
HARUKIDELTA 0:813f5cd20cf1 46 int8_t catchSerial(void); //シリアルデータを取得
HARUKIDELTA 0:813f5cd20cf1 47 void unpackSerialdata(void); //シリアルデータから各チャンネルの情報を取得
HARUKIDELTA 0:813f5cd20cf1 48 void inputPwm(void); //manualpwm変数に値を入力
HARUKIDELTA 0:813f5cd20cf1 49 };
HARUKIDELTA 0:813f5cd20cf1 50
HARUKIDELTA 0:813f5cd20cf1 51
HARUKIDELTA 0:813f5cd20cf1 52 #endif