mirror of
https://github.com/eclipse/upm.git
synced 2025-03-15 04:57:30 +03:00
Adafruitms1438: Add string based constructor
This commit is contained in:
parent
cdc60a5f1a
commit
7ec90e96af
@ -35,6 +35,21 @@ using namespace std;
|
|||||||
|
|
||||||
AdafruitMS1438::AdafruitMS1438(int bus, uint8_t address) :
|
AdafruitMS1438::AdafruitMS1438(int bus, uint8_t address) :
|
||||||
m_pca9685(new PCA9685(bus, address))
|
m_pca9685(new PCA9685(bus, address))
|
||||||
|
{
|
||||||
|
initAdafruitMS1438();
|
||||||
|
}
|
||||||
|
|
||||||
|
AdafruitMS1438::AdafruitMS1438(std::string initStr) : m_pca9685(new PCA9685(initStr))
|
||||||
|
{
|
||||||
|
initAdafruitMS1438();
|
||||||
|
}
|
||||||
|
|
||||||
|
AdafruitMS1438::~AdafruitMS1438()
|
||||||
|
{
|
||||||
|
delete m_pca9685;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AdafruitMS1438::initAdafruitMS1438()
|
||||||
{
|
{
|
||||||
setupPinMaps();
|
setupPinMaps();
|
||||||
|
|
||||||
@ -56,11 +71,6 @@ AdafruitMS1438::AdafruitMS1438(int bus, uint8_t address) :
|
|||||||
stepConfig(STEPMOTOR_M34, 200);
|
stepConfig(STEPMOTOR_M34, 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
AdafruitMS1438::~AdafruitMS1438()
|
|
||||||
{
|
|
||||||
delete m_pca9685;
|
|
||||||
}
|
|
||||||
|
|
||||||
void AdafruitMS1438::initClock(STEPMOTORS_T motor)
|
void AdafruitMS1438::initClock(STEPMOTORS_T motor)
|
||||||
{
|
{
|
||||||
gettimeofday(&m_stepConfig[motor].startTime, NULL);
|
gettimeofday(&m_stepConfig[motor].startTime, NULL);
|
||||||
@ -146,12 +156,12 @@ void AdafruitMS1438::setMotorSpeed(DCMOTORS_T motor, int speed)
|
|||||||
{
|
{
|
||||||
if (speed < 0)
|
if (speed < 0)
|
||||||
speed = 0;
|
speed = 0;
|
||||||
|
|
||||||
if (speed > 100)
|
if (speed > 100)
|
||||||
speed = 100;
|
speed = 100;
|
||||||
|
|
||||||
float percent = float(speed) / 100.0;
|
float percent = float(speed) / 100.0;
|
||||||
|
|
||||||
// make sure that the FullOn bit is turned off, or the speed setting
|
// make sure that the FullOn bit is turned off, or the speed setting
|
||||||
// (PWM duty cycle) won't have any effect.
|
// (PWM duty cycle) won't have any effect.
|
||||||
m_pca9685->ledFullOn(m_dcMotors[motor].pwm, false);
|
m_pca9685->ledFullOn(m_dcMotors[motor].pwm, false);
|
||||||
@ -162,7 +172,7 @@ void AdafruitMS1438::setMotorSpeed(DCMOTORS_T motor, int speed)
|
|||||||
|
|
||||||
void AdafruitMS1438::setStepperSpeed(STEPMOTORS_T motor, int speed)
|
void AdafruitMS1438::setStepperSpeed(STEPMOTORS_T motor, int speed)
|
||||||
{
|
{
|
||||||
m_stepConfig[motor].stepDelay = 60 * 1000 /
|
m_stepConfig[motor].stepDelay = 60 * 1000 /
|
||||||
m_stepConfig[motor].stepsPerRev / speed;
|
m_stepConfig[motor].stepsPerRev / speed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -291,14 +301,14 @@ void AdafruitMS1438::stepperSteps(STEPMOTORS_T motor, unsigned int steps)
|
|||||||
|
|
||||||
if (m_stepConfig[motor].stepDirection == 1)
|
if (m_stepConfig[motor].stepDirection == 1)
|
||||||
{
|
{
|
||||||
if (m_stepConfig[motor].currentStep >=
|
if (m_stepConfig[motor].currentStep >=
|
||||||
m_stepConfig[motor].stepsPerRev)
|
m_stepConfig[motor].stepsPerRev)
|
||||||
m_stepConfig[motor].currentStep = 0;
|
m_stepConfig[motor].currentStep = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (m_stepConfig[motor].currentStep <= 0)
|
if (m_stepConfig[motor].currentStep <= 0)
|
||||||
m_stepConfig[motor].currentStep =
|
m_stepConfig[motor].currentStep =
|
||||||
m_stepConfig[motor].stepsPerRev;
|
m_stepConfig[motor].stepsPerRev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <mraa/i2c.h>
|
#include <mraa/i2c.h>
|
||||||
#include <mraa/gpio.h>
|
#include <mraa/gpio.h>
|
||||||
|
#include <mraa/initio.hpp>
|
||||||
|
|
||||||
#include "pca9685.hpp"
|
#include "pca9685.hpp"
|
||||||
|
|
||||||
@ -36,7 +37,7 @@
|
|||||||
#define ADAFRUITMS1438_DEFAULT_I2C_ADDR 0x60
|
#define ADAFRUITMS1438_DEFAULT_I2C_ADDR 0x60
|
||||||
|
|
||||||
namespace upm {
|
namespace upm {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Adafruit Motor Shield
|
* @brief Adafruit Motor Shield
|
||||||
* @defgroup adafruitms1438 libupm-adafruitms1438
|
* @defgroup adafruitms1438 libupm-adafruitms1438
|
||||||
@ -104,11 +105,23 @@ namespace upm {
|
|||||||
*/
|
*/
|
||||||
AdafruitMS1438(int bus, uint8_t address = ADAFRUITMS1438_DEFAULT_I2C_ADDR);
|
AdafruitMS1438(int bus, uint8_t address = ADAFRUITMS1438_DEFAULT_I2C_ADDR);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates AdafruitMS1438 based on a given string.
|
||||||
|
*
|
||||||
|
* @param initStr string containing specific information for AdafruitMS1438 initialization.
|
||||||
|
*/
|
||||||
|
AdafruitMS1438(std::string initStr);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AdafruitMS1438 destructor
|
* AdafruitMS1438 destructor
|
||||||
*/
|
*/
|
||||||
~AdafruitMS1438();
|
~AdafruitMS1438();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AdafruitMS1438 initialization method
|
||||||
|
*/
|
||||||
|
void initAdafruitMS1438();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the number of milliseconds elapsed since initClock(...)
|
* Returns the number of milliseconds elapsed since initClock(...)
|
||||||
* was last called.
|
* was last called.
|
||||||
@ -126,7 +139,7 @@ namespace upm {
|
|||||||
/**
|
/**
|
||||||
* Sets the PWM period. Note: this applies to all PWM channels.
|
* Sets the PWM period. Note: this applies to all PWM channels.
|
||||||
*
|
*
|
||||||
* @param hz Sets the PWM period
|
* @param hz Sets the PWM period
|
||||||
*/
|
*/
|
||||||
void setPWMPeriod(float hz);
|
void setPWMPeriod(float hz);
|
||||||
|
|
||||||
@ -182,7 +195,7 @@ namespace upm {
|
|||||||
* @param dir Direction to set the motor in
|
* @param dir Direction to set the motor in
|
||||||
*/
|
*/
|
||||||
void setMotorDirection(DCMOTORS_T motor, DIRECTION_T dir);
|
void setMotorDirection(DCMOTORS_T motor, DIRECTION_T dir);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the direction of a stepper motor, clockwise or counterclockwise
|
* Sets the direction of a stepper motor, clockwise or counterclockwise
|
||||||
*
|
*
|
||||||
@ -190,7 +203,7 @@ namespace upm {
|
|||||||
* @param dir Direction to set the motor in
|
* @param dir Direction to set the motor in
|
||||||
*/
|
*/
|
||||||
void setStepperDirection(STEPMOTORS_T motor, DIRECTION_T dir);
|
void setStepperDirection(STEPMOTORS_T motor, DIRECTION_T dir);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a stepper motor configuration
|
* Sets a stepper motor configuration
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user