59 lines
1.6 KiB
C
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);
|