Hiroki Tanaka / Mbed 2 deprecated L432KC_temp

Dependencies:   mbed ros_lib_kinetic

Committer:
TanakaRobo
Date:
Tue Jul 09 07:56:07 2019 +0000
Revision:
1:17051435cfc5
Parent:
0:a8a56075e947
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TanakaRobo 1:17051435cfc5 1 #ifndef SCRP_SLAVE_H
TanakaRobo 1:17051435cfc5 2 #define SCRP_SLAVE_H
TanakaRobo 0:a8a56075e947 3 #include "mbed.h"
TanakaRobo 1:17051435cfc5 4
TanakaRobo 1:17051435cfc5 5 /*USBでPCにつなぐポートと、基板上でRasPiとつなぐポートを同時に開く。
TanakaRobo 1:17051435cfc5 6 *RedePinの有り無しの選択、ポートを一つだけ開くことも可。
TanakaRobo 1:17051435cfc5 7 *以下から選択。
TanakaRobo 1:17051435cfc5 8 *ScrpSlave(PinName TX1,PinName RX1,uint32_t addr);//RedePinなし、1ポート
TanakaRobo 1:17051435cfc5 9 *ScrpSlave(PinName TX1,PinName RX1,PinName REDE1,uint32_t addr);//RedePinあり、1ポート
TanakaRobo 1:17051435cfc5 10 *ScrpSlave(PinName TX1,PinName RX1,PinName TX2,PinName RX2,uint32_t addr);//RedePinなし、2ポート
TanakaRobo 1:17051435cfc5 11 *ScrpSlave(PinName TX1,PinName RX1,PinName REDE1,PinName TX2,PinName RX2,uint32_t addr);//RedePinあり、1ポート+RedePinなし、1ポート
TanakaRobo 1:17051435cfc5 12 *example not usb port
TanakaRobo 1:17051435cfc5 13 *L432KC : TX = PA_9 , RX = PA_10 , REDE = PA_12 , addr = 0x0803e000
TanakaRobo 1:17051435cfc5 14 *F446RE : TX = PC_12 , RX = PD_2 , RDDE = PH_1 , addr = 0x0807ffff
TanakaRobo 1:17051435cfc5 15 */
TanakaRobo 1:17051435cfc5 16 //ScrpSlave slave(SERIAL_TX,SERIAL_RX);
TanakaRobo 1:17051435cfc5 17
TanakaRobo 1:17051435cfc5 18 inline int constrain(int x,int a,int b){
TanakaRobo 1:17051435cfc5 19 return (x < a ? a : x > b ? b : x);
TanakaRobo 1:17051435cfc5 20 }
TanakaRobo 1:17051435cfc5 21
TanakaRobo 1:17051435cfc5 22 inline double constrain(double x,double a,double b){
TanakaRobo 1:17051435cfc5 23 return (x < a ? a : x > b ? b : x);
TanakaRobo 1:17051435cfc5 24 }
TanakaRobo 0:a8a56075e947 25
TanakaRobo 0:a8a56075e947 26 class ScrpSlave{
TanakaRobo 0:a8a56075e947 27 public:
TanakaRobo 0:a8a56075e947 28 ScrpSlave(PinName TX1,PinName RX1,uint32_t addr);//RedePinなし、1ポート
TanakaRobo 0:a8a56075e947 29 ScrpSlave(PinName TX1,PinName RX1,PinName REDE1,uint32_t addr);//RedePinあり、1ポート
TanakaRobo 0:a8a56075e947 30 ScrpSlave(PinName TX1,PinName RX1,PinName TX2,PinName RX2,uint32_t addr);//RedePinなし、2ポート
TanakaRobo 0:a8a56075e947 31 ScrpSlave(PinName TX1,PinName RX1,PinName REDE1,PinName TX2,PinName RX2,uint32_t addr);//RedePinあり、1ポート+RedePinなし、1ポート
TanakaRobo 0:a8a56075e947 32 ~ScrpSlave();
TanakaRobo 0:a8a56075e947 33 void setTimeout(int);
TanakaRobo 0:a8a56075e947 34 void addCMD(uint8_t cmd, bool (*proc)(int rx_data,int& tx_data));
TanakaRobo 0:a8a56075e947 35 int send(uint8_t id,uint8_t cmd,int16_t tx_data);
TanakaRobo 0:a8a56075e947 36 int send2(uint8_t id,uint8_t cmd,int16_t tx_data);
TanakaRobo 0:a8a56075e947 37 private:
TanakaRobo 1:17051435cfc5 38 DigitalOut *rede_;
TanakaRobo 1:17051435cfc5 39 Serial *serial_[2];
TanakaRobo 1:17051435cfc5 40 FlashIAP *flash_;
TanakaRobo 1:17051435cfc5 41 uint8_t mode_;
TanakaRobo 1:17051435cfc5 42 uint8_t my_id_;
TanakaRobo 1:17051435cfc5 43 uint32_t address_;
TanakaRobo 1:17051435cfc5 44 int timeout_;
TanakaRobo 1:17051435cfc5 45 bool (*procs_[256])(int rx_data, int& tx_data);
TanakaRobo 0:a8a56075e947 46 int sending(int,uint8_t,uint8_t,int16_t);
TanakaRobo 0:a8a56075e947 47 void changeID(uint8_t);
TanakaRobo 0:a8a56075e947 48 void check(int port);
TanakaRobo 0:a8a56075e947 49 void init(PinName,PinName);
TanakaRobo 0:a8a56075e947 50 void port1();
TanakaRobo 0:a8a56075e947 51 void port2();
TanakaRobo 1:17051435cfc5 52 };
TanakaRobo 1:17051435cfc5 53
TanakaRobo 1:17051435cfc5 54 #endif /* SCRP_SLAVE_H */