encslave

Dependencies:   mbed

Committer:
kurobikari
Date:
Wed Sep 01 07:01:56 2021 +0000
Revision:
2:2ee241819861
aaaa

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kurobikari 2:2ee241819861 1 #ifndef INCLUDED_can_h_
kurobikari 2:2ee241819861 2 #define INCLUDED_can_h_
kurobikari 2:2ee241819861 3
kurobikari 2:2ee241819861 4 #include "mbed.h"
kurobikari 2:2ee241819861 5 #include "CAN.h"
kurobikari 2:2ee241819861 6 #include "CANMsg.h"
kurobikari 2:2ee241819861 7 //#include "YKNCT_I2C.h"
kurobikari 2:2ee241819861 8
kurobikari 2:2ee241819861 9 /* 定数定義 ------------------------------------------------------------------*/
kurobikari 2:2ee241819861 10
kurobikari 2:2ee241819861 11 /* 分解能(最大255まで有効)*/
kurobikari 2:2ee241819861 12 #define MD_RESOLUTION 100
kurobikari 2:2ee241819861 13 #define MD_max 10
kurobikari 2:2ee241819861 14 #define ABS(__VAL__) (((__VAL__) < 0) ? (-(__VAL__)) : (__VAL__))
kurobikari 2:2ee241819861 15 #define Rest(__val__, __Limit__) ((__val__) >= (__Limit__) ? (__Limit__) : ((__val__) <= (-(__Limit__)) ? (-(__Limit__)) : (__val__)))
kurobikari 2:2ee241819861 16 #define CAN_TX_ADDRESS 50
kurobikari 2:2ee241819861 17 #define CAN_RX_ADDRESS 0
kurobikari 2:2ee241819861 18
kurobikari 2:2ee241819861 19 typedef enum {
kurobikari 2:2ee241819861 20 MD_SMB,
kurobikari 2:2ee241819861 21 MD_LAP
kurobikari 2:2ee241819861 22 } MD_ModeStatus_TypeDef;
kurobikari 2:2ee241819861 23
kurobikari 2:2ee241819861 24 typedef enum {
kurobikari 2:2ee241819861 25 MD_FREE,
kurobikari 2:2ee241819861 26 MD_BRAKE=2
kurobikari 2:2ee241819861 27 } MD_BrakeStatus_TypeDef;
kurobikari 2:2ee241819861 28
kurobikari 2:2ee241819861 29 typedef enum {
kurobikari 2:2ee241819861 30 MD_FORWARD,
kurobikari 2:2ee241819861 31 MD_REVERSE
kurobikari 2:2ee241819861 32 } MD_DriveStatus_TypeDef;
kurobikari 2:2ee241819861 33
kurobikari 2:2ee241819861 34 /* クラス定義 ----------------------------------------------------------------*/
kurobikari 2:2ee241819861 35
kurobikari 2:2ee241819861 36 /*******************************************************************************
kurobikari 2:2ee241819861 37 * @名称 YKNCT_MD_I2C
kurobikari 2:2ee241819861 38 * @概要 I2Cモジュール"MD"用ライブラリ
kurobikari 2:2ee241819861 39 *******************************************************************************/
kurobikari 2:2ee241819861 40 class YKNCT_MD_CAN
kurobikari 2:2ee241819861 41 {
kurobikari 2:2ee241819861 42 private:
kurobikari 2:2ee241819861 43 /* 出力先の数をカウントする */
kurobikari 2:2ee241819861 44 int8_t NumCnt;
kurobikari 2:2ee241819861 45 /* 送信データ
kurobikari 2:2ee241819861 46 [0] [ MD出力更新 | 0 | 0 | 0 | 0 | ブレーキ | 回転方向 | SMP/RAP ]
kurobikari 2:2ee241819861 47 [1] PWM値(7bit)
kurobikari 2:2ee241819861 48 */
kurobikari 2:2ee241819861 49 int32_t data[MD_max];
kurobikari 2:2ee241819861 50
kurobikari 2:2ee241819861 51 /* CAN受信用 */
kurobikari 2:2ee241819861 52 CANMsg rxMsg;
kurobikari 2:2ee241819861 53 /* CAN送信用 */
kurobikari 2:2ee241819861 54 CANMsg txMsg[MD_max];
kurobikari 2:2ee241819861 55 /* 送信割り込み */
kurobikari 2:2ee241819861 56 Ticker interrupt;
kurobikari 2:2ee241819861 57
kurobikari 2:2ee241819861 58 int8_t Rx_Id[MD_max];
kurobikari 2:2ee241819861 59 public:
kurobikari 2:2ee241819861 60 CAN can;
kurobikari 2:2ee241819861 61 //can.attach(onCanReceived);
kurobikari 2:2ee241819861 62 /* I2CのバスのInit */
kurobikari 2:2ee241819861 63 YKNCT_MD_CAN(PinName rd, PinName td,int t);
kurobikari 2:2ee241819861 64 /* アドレス,モードを設定する */
kurobikari 2:2ee241819861 65 void Init(int8_t address, MD_ModeStatus_TypeDef mode);
kurobikari 2:2ee241819861 66 /* 出力値を設定する */
kurobikari 2:2ee241819861 67 void Set(int8_t ConNumber, int16_t val);
kurobikari 2:2ee241819861 68 /* 出力値を設定する(モーター開放あり) */
kurobikari 2:2ee241819861 69 void Set(int8_t ConNumber, int16_t val, MD_BrakeStatus_TypeDef option);
kurobikari 2:2ee241819861 70 /* 出力値を確認する */
kurobikari 2:2ee241819861 71 int16_t Get_enc(int8_t ConNumber);
kurobikari 2:2ee241819861 72 /* 設定された出力値の出力をする */
kurobikari 2:2ee241819861 73 void Exe(void);
kurobikari 2:2ee241819861 74 /* 割り込み用関数 */
kurobikari 2:2ee241819861 75 void sent(void);
kurobikari 2:2ee241819861 76 /* 受信用関数 */
kurobikari 2:2ee241819861 77 void onCanReceived(void);
kurobikari 2:2ee241819861 78 };
kurobikari 2:2ee241819861 79 #endif