Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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
Generated on Fri Jul 15 2022 01:55:45 by
1.7.2