Xiaohai Li / Mbed 2 deprecated RPi_MOT_HAT

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers MotHatLib.h Source File

MotHatLib.h

00001 #ifndef _PE_BD_LIB_
00002 #define _PE_BD_LIB_
00003 
00004 class SerialDummy
00005 {
00006     public:
00007         void baud(int baudrate) {}
00008         int printf(const char *format, ...) {return 0;}        
00009         int readable() {return 0;}
00010         int writeable() {return 0;}
00011         int putc(int ch) {return 0;}
00012         int getc() {return 0;}        
00013 };
00014 
00015 //Number of on-board devices
00016 extern const int LED_NUM_MAX;
00017 extern const int MOT_NUM_MAX;
00018 extern const int SRV_NUM_MAX;
00019 extern const int VMON_NUM_MAX;
00020 //The speed difference rate of left/right side motors when the vehicle turns head
00021 extern const int MOT_TURN_RATE;
00022 //Fixed PWM period of servos
00023 extern const int SRV_PERIOD_US;
00024 
00025 //LEDs on mother board and daughter board
00026 extern DigitalOut led_mb;
00027 
00028 //USART2 to PC for debug
00029 
00030 extern Serial uart_pc;
00031 extern SerialDummy uart_dummy;
00032 
00033 //GPIO for L293DD motor direction control
00034 //Forward = 2b'01, Backward = 2b'10, Stop = 2b'00
00035 extern BusOut mot1_dir, mot2_dir, mot3_dir, mot4_dir;
00036 
00037 //Analog inputs for power voltage monitoring
00038 extern AnalogIn vin_bat;
00039 extern AnalogIn vin_12v;
00040 extern AnalogIn vin_5v;
00041 extern AnalogIn vin_3v;
00042 
00043 //TIM3 PWM channels
00044 extern PwmOut mot1_pwm;
00045 extern PwmOut mot2_pwm;
00046 extern PwmOut mot3_pwm;
00047 extern PwmOut mot4_pwm;
00048 
00049 //TIM15 PWM channels
00050 extern PwmOut servo1_pwm;
00051 extern PwmOut servo2_pwm;
00052 //TIM16 PWM channels
00053 extern PwmOut servo3_pwm;
00054 //TIM17 PWM channels
00055 extern PwmOut servo4_pwm;
00056 
00057 //Init functions
00058 extern int BoardLibInit(void);
00059 
00060 //DC motor functions
00061 extern void Mot_Init(void);
00062 extern void Mot_Ctrl(char dir, char turn, float speed);
00063 extern void Mot_PwmSetup(int channel, int period, float duty);
00064 extern void Mot_PwmWrite(int channel, float duty);
00065 extern void Mot_SetDirection(int channel, char dir);
00066 
00067 //Motor velocimetoer functions 
00068 void Mot_StartVelocimeter(void);
00069 void Mot_StopVelocimeter(void);
00070 int Mot_GetSpeed(int channel);
00071 void Mot_SpdPluseIntHandler1(void);
00072 void Mot_SpdPluseIntHandler2(void);
00073 void Mot_SpdPluseIntHandler3(void);
00074 void Mot_SpdPluseIntHandler4(void);
00075 
00076 //Servo functions
00077 extern void Servo_Init(void);
00078 extern void Servo_SetAngle(int channel, float angle);
00079 extern void Servo_PwmSetup(int channel, int pulse_us);
00080 extern void Servo_PwmWrite(int channel, int pulse_us);
00081 
00082 //Voltage monitor functions 
00083 extern float Vmon_ReadVolt(int channel);
00084 
00085 //On-board LED functions
00086 extern void LedOn(int ch);
00087 extern void LedOff(int ch);
00088 extern void LedToggle(int ch);
00089 extern void LedOffAll(void);
00090 extern void LedOnAll(void);
00091 
00092 #endif