史也 菅
/
I2c_slave
encslave
can.h@2:2ee241819861, 2021-09-01 (annotated)
- Committer:
- kurobikari
- Date:
- Wed Sep 01 07:01:56 2021 +0000
- Revision:
- 2:2ee241819861
aaaa
Who changed what in which revision?
User | Revision | Line number | New 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 |