MTRCTL - Sets initial frequency of DC motors. - Controls motor speed according to IC specifications. - Handles motors in order to help the car during curved paths.

Dependents:   frdm_MasterVehicle

Committer:
JalilChavez
Date:
Fri Oct 17 21:48:31 2014 +0000
Revision:
1:681973914ddd
Parent:
0:4fc76af15d0e
- Corrected differential speed algorithm

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JalilChavez 0:4fc76af15d0e 1 #ifndef _MTRCTL_H_
JalilChavez 0:4fc76af15d0e 2 #define _MTRCTL_H_
JalilChavez 0:4fc76af15d0e 3
JalilChavez 0:4fc76af15d0e 4 #include "mbed.h"
JalilChavez 0:4fc76af15d0e 5
JalilChavez 0:4fc76af15d0e 6 /**********************************************************************************
JalilChavez 0:4fc76af15d0e 7 * Servo parameters
JalilChavez 0:4fc76af15d0e 8 ***********************************************************************************/
JalilChavez 0:4fc76af15d0e 9 #define OP_PERIOD 90900/* us
JalilChavez 0:4fc76af15d0e 10 * Description: operation period to control propulsion motors
JalilChavez 0:4fc76af15d0e 11 */
JalilChavez 0:4fc76af15d0e 12
JalilChavez 0:4fc76af15d0e 13 #define MAX_POWER 1000/*
JalilChavez 0:4fc76af15d0e 14 * Description: logical, max value allowed for a PWM channel
JalilChavez 0:4fc76af15d0e 15 */
JalilChavez 0:4fc76af15d0e 16
JalilChavez 0:4fc76af15d0e 17 #define MIN_POWER 100/*
JalilChavez 0:4fc76af15d0e 18 * Description: logical, min value allowed for a PWM channel
JalilChavez 0:4fc76af15d0e 19 */
JalilChavez 0:4fc76af15d0e 20
JalilChavez 0:4fc76af15d0e 21 #define MAX_DIRECTION_VAL 128/*
JalilChavez 0:4fc76af15d0e 22 * Description: Maximum direction value, it means totally right, 0 means totally left
JalilChavez 0:4fc76af15d0e 23 */
JalilChavez 0:4fc76af15d0e 24
JalilChavez 0:4fc76af15d0e 25 #define SCALE_DIR2SPEED (uint16_t)(MAX_POWER/MAX_DIRECTION_VAL)
JalilChavez 0:4fc76af15d0e 26
JalilChavez 0:4fc76af15d0e 27 /**********************************************************************************
JalilChavez 0:4fc76af15d0e 28 * Variable types definition
JalilChavez 0:4fc76af15d0e 29 ***********************************************************************************/
JalilChavez 0:4fc76af15d0e 30 typedef enum
JalilChavez 0:4fc76af15d0e 31 {
JalilChavez 0:4fc76af15d0e 32 nLeftMotor = 0,
JalilChavez 0:4fc76af15d0e 33 nRightMotor,
JalilChavez 0:4fc76af15d0e 34 nNoOfMotors
JalilChavez 0:4fc76af15d0e 35 }MTRCTL_tenMotors;
JalilChavez 0:4fc76af15d0e 36 /**********************************************************************************
JalilChavez 0:4fc76af15d0e 37 * Global functions
JalilChavez 0:4fc76af15d0e 38 ***********************************************************************************/
JalilChavez 0:4fc76af15d0e 39 void MTRCTL_vInit( void );
JalilChavez 0:4fc76af15d0e 40 void MTRCTL_vSetMaxSpeed( uint16_t u16MaxSpeed );
JalilChavez 0:4fc76af15d0e 41 void MTRCTL_vSetMotorPower( uint16_t u16InPwr, MTRCTL_tenMotors enMotor );
JalilChavez 0:4fc76af15d0e 42 void MTRCTL_vSetSystemSpeed( uint16_t u16Speed, uint8_t u8Direction );
JalilChavez 0:4fc76af15d0e 43
JalilChavez 0:4fc76af15d0e 44 #endif