Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Adafruit Motor shield library
- // copyright Adafruit Industries LLC, 2009
- // this code is public domain, enjoy!
- #ifndef _AFMotor_h_
- #define _AFMotor_h_
- #include <inttypes.h>
- #include <avr/io.h>
- //#define MOTORDEBUG 1
- #define MICROSTEPS 16 // 8 or 16
- #define MOTOR12_64KHZ _BV(CS20) // no prescale
- #define MOTOR12_8KHZ _BV(CS21) // divide by 8
- #define MOTOR12_2KHZ _BV(CS21) | _BV(CS20) // divide by 32
- #define MOTOR12_1KHZ _BV(CS22) // divide by 64
- #define MOTOR34_64KHZ _BV(CS00) // no prescale
- #define MOTOR34_8KHZ _BV(CS01) // divide by 8
- #define MOTOR34_1KHZ _BV(CS01) | _BV(CS00) // divide by 64
- #define MOTOR1_A 2
- #define MOTOR1_B 3
- #define MOTOR2_A 1
- #define MOTOR2_B 4
- #define MOTOR4_A 0
- #define MOTOR4_B 6
- #define MOTOR3_A 5
- #define MOTOR3_B 7
- #define FORWARD 1
- #define BACKWARD 2
- #define BRAKE 3
- #define RELEASE 4
- #define SINGLE 1
- #define DOUBLE 2
- #define INTERLEAVE 3
- #define MICROSTEP 4
- /*
- #define LATCH 4
- #define LATCH_DDR DDRB
- #define LATCH_PORT PORTB
- #define CLK_PORT PORTD
- #define CLK_DDR DDRD
- #define CLK 4
- #define ENABLE_PORT PORTD
- #define ENABLE_DDR DDRD
- #define ENABLE 7
- #define SER 0
- #define SER_DDR DDRB
- #define SER_PORT PORTB
- */
- // Arduino pin names
- #define MOTORLATCH 12
- #define MOTORCLK 4
- #define MOTORENABLE 7
- #define MOTORDATA 8
- class AFMotorController
- {
- public:
- AFMotorController(void);
- void enable(void);
- friend class AF_DCMotor;
- void latch_tx(void);
- };
- class AF_DCMotor
- {
- public:
- AF_DCMotor(uint8_t motornum, uint8_t freq = MOTOR34_8KHZ);
- void run(uint8_t);
- void setSpeed(uint8_t);
- private:
- uint8_t motornum, pwmfreq;
- };
- class AF_Stepper {
- public:
- AF_Stepper(uint16_t, uint8_t);
- void step(uint16_t steps, uint8_t dir, uint8_t style = SINGLE);
- void setSpeed(uint16_t);
- uint8_t onestep(uint8_t dir, uint8_t style);
- void release(void);
- uint16_t revsteps; // # steps per revolution
- uint8_t steppernum;
- uint32_t usperstep, steppingcounter;
- private:
- uint8_t currentstep;
- };
- uint8_t getlatchstate(void);
- #endif
Add Comment
Please, Sign In to add comment