41 lines
729 B
C++
41 lines
729 B
C++
/**** Includes ****/
|
|
#include "../utils/utils.h"
|
|
#include "mcu/mcu_hal.h"
|
|
#include "pwm.h"
|
|
|
|
using namespace bsp;
|
|
|
|
/**** Private definitions ****/
|
|
/**** Private constants ****/
|
|
/**** Private variables ****/
|
|
/**** Private function declarations ****/
|
|
|
|
/**** Public function definitions ****/
|
|
bsp::PWMout::PWMout(uint8_t pwm_ch)
|
|
{
|
|
this->pwm_ch = pwm_ch;
|
|
this->write(0);
|
|
}
|
|
|
|
bsp::PWMout::~PWMout(void)
|
|
{
|
|
this->write(0);
|
|
}
|
|
|
|
void bsp::PWMout::write(uint8_t duty)
|
|
{
|
|
// Convert percent to 16b duty cycle
|
|
uint16_t dc = util::percent_to_16b(duty);
|
|
|
|
// Set PWM
|
|
mcu::pwm_write(this->pwm_ch, dc);
|
|
this->last_duty = duty;
|
|
}
|
|
|
|
uint8_t bsp::PWMout::get_set_duty(void)
|
|
{
|
|
return this->last_duty;
|
|
}
|
|
|
|
/**** Private function definitions ****/
|