s

Dependencies:   HCSR04_2 MPU6050_2 mbed SDFileSystem3

Fork of AutoFlight2017_now_copy by Bot Furukawa

Committer:
TUATBM
Date:
Sat Sep 08 09:21:46 2018 +0000
Revision:
2:e7025f2cf0e1
Parent:
0:92024886c0be
a

Who changed what in which revision?

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