ver CAN
ikarashiMDC.h
- Committer:
- tknara
- Date:
- 2018-11-27
- Revision:
- 14:b1b58b74dd4c
- Parent:
- 13:ea34af94e90c
File content as of revision 14:b1b58b74dd4c:
#ifndef IKARASHIMDC_H
#define IKARASHIMDC_H
#include "mbed.h"
#include "algorithm"
#define LAP 0
#define SM 1
/**
* @file ikarashiMDC.h
* @Author Wataru Nakata
* @date August, 2017
* @brief ikarashi MDC class header file.
*
* MDC control libraly. creates object for each motors.
*/
/** Ikarashi MDC class
* MDC libraly
*Example :
*@code
#include "mbed.h"
#include "ikarashiMDC.h"
Serial serial(PC_10,PC_11);
DigitalOut serialcontrol(D2);
*
ikarashiMDC ikarashi[]{
* ikarashiMDC(&serialcontrol,2,2,SM,&serial),
* ikarashiMDC(&serialcontrol,2,3,LAP,&serial),
};
PwmOut pwm(LED1);
*
int main() {
* serial.baud(38400);
* float i = -1;
* while(1) {
* ikarashi[0].setSpeed(i);
* ikarashi[1].setSpeed(i);
* i += 0.01;
* pwm = fabs(i);
* wait_ms(20);
* if(i >= 1) i = -1;
* }
}
*@endcode
**/
class ikarashiMDC
{
public:
/** Create ikarashiMDC inctance
* @param address of cs pin for rs485
* @param addr for MDC
* @param ch for motor
* @param mdc mode (LAP or SM)
* @param address of serial object
**/
ikarashiMDC(DigitalOut* serialcontrol,uint8_t taddr,uint8_t tmotorNum,bool tmode,Serial *tserial);
ikarashiMDC(uint8_t taddr,uint8_t tmotorNum,bool tmode,CAN *can);
/** drive motor
* @param speed of motor -1 to 1
**/
int setSpeed(const double& speed);
bool braking;
protected:
uint8_t addr;
uint8_t motorNum;
bool mode;
Serial* serial;
DigitalOut *serialControl;
CAN* can_driver;
CANMessage msg;
};
void estop(Serial *serial);
#endif