Files
PiHatD/MotorHatD/motorHat.h
2021-07-09 19:20:12 -05:00

59 lines
1.6 KiB
C

/* Constants and methodswe'll need for the pi hat.
* Methods and header definitions from a RPI forum thread,
* specifically, the post by garagebrewer:
* https://www.raspberrypi.org/forums/viewtopic.php?t=112415&p=770234
*/
#define word unsigned short
#define ADAFRUIT_MOTORHAT 0x60
#define PWM_M1_PWM 8
#define PWM_M1_IN2 9
#define PWM_M1_IN1 10
#define PWM_M2_PWM 13
#define PWM_M2_IN2 12
#define PWM_M2_IN1 11
#define PWM_M3_PWM 2
#define PWM_M3_IN2 3
#define PWM_M3_IN1 4
#define PWM_M4_PWM 7
#define PWM_M4_IN2 6
#define PWM_M4_IN1 5
#define PWM_FREQUENCY 1600.0
#define PWM_PRESCALE 0xFE
#define PWM_MODE1 0x00
#define PWM_MODE2 0x01
#define PWM_LED0_ON_L 0x06
#define PWM_LED0_ON_H 0x07
#define PWM_LED0_OFF_L 0x08
#define PWM_LED0_OFF_H 0x09
#define PWM_RESTART 0x80
#define PWM_SLEEP 0x10
#define PWM_ALLCALL 0x01
#define PWM_INVRT 0x10
#define PWM_OUTDRV 0x04
#define PWM_ALL_LED_ON_L 0xFA
#define PWM_ALL_LED_ON_H 0xFB
#define PWM_ALL_LED_OFF_L 0xFC
#define PWM_ALL_LED_OFF_H 0xFD
#define MOTOR_FORWARD 12
#define MOTOR_BACK 2
#define MOTOR_BRAKE 3
#define MOTOR_RELEASE 4
#define MOTOR_RIGHT 5
#define MOTOR_LEFT 6
#define MOTOR_PIVOT_RIGHT 7
#define MOTOR_PIVOT_LEFT 8
void setAllPWM(word i2c, word on, word off);
void setPWM(word i2c, word pin, word on, word off);
void setPin(word i2c, word pin, word value);
void runMotor(word i2c, word motor, word command);
void setSpeed(word i2c, word motor, word speed);
void initMotor(word i2c, word motor);