Changed logic
This commit is contained in:
@@ -10,12 +10,12 @@ using namespace hw;
|
||||
/**** Private function declarations ****/
|
||||
|
||||
/**** Public function definitions ****/
|
||||
hw::Button::Button(board::DigitalIn* din_ch, uint8_t act_lvl, uint8_t dbnc_lim, uint8_t init_state)
|
||||
hw::Button::Button(bsp::DigitalIn* din_ch, uint8_t act_lvl, uint8_t dbnc_lim, uint8_t init_state)
|
||||
{
|
||||
this->din_ch = din_ch;
|
||||
|
||||
if(act_lvl) this->act_lvl = board::DIN_HIGH;
|
||||
else this->act_lvl = board::DIN_LOW;
|
||||
if(act_lvl) this->act_lvl = bsp::DIN_HIGH;
|
||||
else this->act_lvl = bsp::DIN_LOW;
|
||||
|
||||
this->dbnc_cnter = 0;
|
||||
this->dbnc_lim = dbnc_lim;
|
||||
@@ -32,10 +32,10 @@ hw::Button::~Button(void)
|
||||
return;
|
||||
}
|
||||
|
||||
uint8_t hw::Button::read(void)
|
||||
uint8_t hw::Button::update(void)
|
||||
{
|
||||
// Read din level
|
||||
uint8_t lvl = this->din_ch->read();
|
||||
uint8_t lvl = this->din_ch->last_read;
|
||||
|
||||
// Increase state counter
|
||||
this->time = util::sat_add(this->time, 1);
|
||||
@@ -60,7 +60,7 @@ uint8_t hw::Button::read(void)
|
||||
return this->state;
|
||||
}
|
||||
|
||||
uint8_t hw::Button::force_read(void)
|
||||
uint8_t hw::Button::force_update(void)
|
||||
{
|
||||
// Read din level
|
||||
uint8_t lvl = this->din_ch->read();
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/**** Includes ****/
|
||||
#include <stdint.h>
|
||||
#include "../board/din.h"
|
||||
#include "../bsp/din.h"
|
||||
|
||||
namespace hw {
|
||||
|
||||
@@ -14,12 +14,12 @@ const uint8_t BUTTON_ON = 1;
|
||||
class Button
|
||||
{
|
||||
protected:
|
||||
board::DigitalIn* din_ch;
|
||||
bsp::DigitalIn* din_ch;
|
||||
uint8_t act_lvl;
|
||||
uint8_t dbnc_cnter;
|
||||
|
||||
public:
|
||||
Button(board::DigitalIn* din_ch, uint8_t act_lvl, uint8_t dbnc_lim, uint8_t init_state);
|
||||
Button(bsp::DigitalIn* din_ch, uint8_t act_lvl, uint8_t dbnc_lim, uint8_t init_state);
|
||||
~Button(void);
|
||||
|
||||
uint8_t state;
|
||||
@@ -27,8 +27,8 @@ class Button
|
||||
uint8_t dbnc_lim;
|
||||
uint8_t is_new;
|
||||
|
||||
uint8_t read(void);
|
||||
uint8_t force_read(void);
|
||||
uint8_t update(void);
|
||||
uint8_t force_update(void);
|
||||
};
|
||||
|
||||
/**** Public function declarations ****/
|
||||
|
||||
@@ -10,9 +10,10 @@ using namespace hw;
|
||||
/**** Private function declarations ****/
|
||||
|
||||
/**** Public function definitions ****/
|
||||
hw::CVoutput::CVoutput(board::Hafbridge* hbridge)
|
||||
hw::CVoutput::CVoutput(bsp::Hafbridge* hbridge, bsp::AnalogIn* supply_u)
|
||||
{
|
||||
this->hbridge = hbridge;
|
||||
this->supply = supply_u;
|
||||
this->target = 0;
|
||||
this->min_out = 0;
|
||||
this->hbridge->disable();
|
||||
@@ -20,18 +21,18 @@ hw::CVoutput::CVoutput(board::Hafbridge* hbridge)
|
||||
|
||||
hw::CVoutput::~CVoutput(void)
|
||||
{
|
||||
this->hbridge->write((uint16_t)0);
|
||||
this->hbridge->write((uint16_t)0x0000);
|
||||
this->hbridge->disable();
|
||||
return;
|
||||
}
|
||||
|
||||
void hw::CVoutput::update(uint16_t supply_mv)
|
||||
void hw::CVoutput::update(void)
|
||||
{
|
||||
// Check target
|
||||
if((this->target < this->min_out)&&(this->target > 0)) this->target = this->min_out;
|
||||
|
||||
// Set output
|
||||
this->hbridge->write(util::sat_ratio(this->target, supply_mv));
|
||||
this->hbridge->write(util::sat_ratio(this->target, this->supply->last_read));
|
||||
}
|
||||
|
||||
void hw::CVoutput::enable(void)
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
|
||||
/**** Includes ****/
|
||||
#include <stdint.h>
|
||||
#include "../board/halfbridge.h"
|
||||
#include "../bsp/ain.h"
|
||||
#include "../bsp/halfbridge.h"
|
||||
|
||||
namespace hw {
|
||||
|
||||
@@ -12,16 +13,17 @@ namespace hw {
|
||||
class CVoutput
|
||||
{
|
||||
protected:
|
||||
board::Hafbridge* hbridge;
|
||||
bsp::Hafbridge* hbridge;
|
||||
bsp::AnalogIn* supply;
|
||||
|
||||
public:
|
||||
CVoutput(board::Hafbridge* hbridge);
|
||||
CVoutput(bsp::Hafbridge* hbridge, bsp::AnalogIn* supply_u);
|
||||
~CVoutput(void);
|
||||
|
||||
uint16_t target;
|
||||
uint16_t min_out;
|
||||
|
||||
void update(uint16_t supply_mv);
|
||||
void update(void);
|
||||
void enable(void);
|
||||
void disable(void);
|
||||
uint8_t is_enabled(void);
|
||||
|
||||
@@ -13,7 +13,7 @@ static uint8_t img_gen_dot20(uint8_t percent);
|
||||
static uint8_t img_gen_bar(uint8_t percent);
|
||||
|
||||
/**** Public function definitions ****/
|
||||
hw::DisplayLed::DisplayLed(board::DigitalOut* led0, board::DigitalOut* led1, board::DigitalOut* led2, board::DigitalOut* led3, board::DigitalOut* led4, board::DigitalOut* led5, board::PWMout* common)
|
||||
hw::DisplayLed::DisplayLed(bsp::DigitalOut* led0, bsp::DigitalOut* led1, bsp::DigitalOut* led2, bsp::DigitalOut* led3, bsp::DigitalOut* led4, bsp::DigitalOut* led5, bsp::PWMout* common)
|
||||
{
|
||||
this->led0 = led0;
|
||||
this->led1 = led1;
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
/**** Includes ****/
|
||||
#include <stdint.h>
|
||||
#include "../board/dout.h"
|
||||
#include "../board/pwm.h"
|
||||
#include "../bsp/dout.h"
|
||||
#include "../bsp/pwm.h"
|
||||
|
||||
namespace hw {
|
||||
|
||||
@@ -13,13 +13,13 @@ namespace hw {
|
||||
class DisplayLed
|
||||
{
|
||||
protected:
|
||||
board::DigitalOut* led0;
|
||||
board::DigitalOut* led1;
|
||||
board::DigitalOut* led2;
|
||||
board::DigitalOut* led3;
|
||||
board::DigitalOut* led4;
|
||||
board::DigitalOut* led5;
|
||||
board::PWMout* common;
|
||||
bsp::DigitalOut* led0;
|
||||
bsp::DigitalOut* led1;
|
||||
bsp::DigitalOut* led2;
|
||||
bsp::DigitalOut* led3;
|
||||
bsp::DigitalOut* led4;
|
||||
bsp::DigitalOut* led5;
|
||||
bsp::PWMout* common;
|
||||
|
||||
public:
|
||||
typedef enum {
|
||||
@@ -28,7 +28,7 @@ class DisplayLed
|
||||
LED_DSP_BAR
|
||||
} style_t;
|
||||
|
||||
DisplayLed(board::DigitalOut* led0, board::DigitalOut* led1, board::DigitalOut* led2, board::DigitalOut* led3, board::DigitalOut* led4, board::DigitalOut* led5, board::PWMout* common);
|
||||
DisplayLed(bsp::DigitalOut* led0, bsp::DigitalOut* led1, bsp::DigitalOut* led2, bsp::DigitalOut* led3, bsp::DigitalOut* led4, bsp::DigitalOut* led5, bsp::PWMout* common);
|
||||
~DisplayLed(void);
|
||||
|
||||
void show_percent(uint8_t percent, style_t style);
|
||||
|
||||
@@ -11,7 +11,7 @@ using namespace hw;
|
||||
/**** Private function declarations ****/
|
||||
|
||||
/**** Public function definitions ****/
|
||||
hw::Potentiometer::Potentiometer(board::AnalogIn* ain_ch, uint16_t low_deadzone, uint16_t high_deadzone)
|
||||
hw::Potentiometer::Potentiometer(bsp::AnalogIn* ain_ch, uint16_t low_deadzone, uint16_t high_deadzone)
|
||||
{
|
||||
this->ain_ch = ain_ch;
|
||||
this->low_deadzone = low_deadzone;
|
||||
@@ -24,11 +24,8 @@ hw::Potentiometer::~Potentiometer(void)
|
||||
return;
|
||||
}
|
||||
|
||||
uint8_t hw::Potentiometer::read(void)
|
||||
uint8_t hw::Potentiometer::update(void)
|
||||
{
|
||||
// Update input
|
||||
this->ain_ch->read();
|
||||
|
||||
// Calculate percent
|
||||
this->percent = util::interpolate(this->ain_ch->last_read, this->low_deadzone, this->high_deadzone, 0, 100);
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/**** Includes ****/
|
||||
#include <stdint.h>
|
||||
#include "../board/ain.h"
|
||||
#include "../bsp/ain.h"
|
||||
|
||||
namespace hw {
|
||||
|
||||
@@ -12,17 +12,17 @@ namespace hw {
|
||||
class Potentiometer
|
||||
{
|
||||
protected:
|
||||
board::AnalogIn* ain_ch;
|
||||
bsp::AnalogIn* ain_ch;
|
||||
|
||||
public:
|
||||
Potentiometer(board::AnalogIn* ain_ch, uint16_t low_deadzone, uint16_t high_deadzone);
|
||||
Potentiometer(bsp::AnalogIn* ain_ch, uint16_t low_deadzone, uint16_t high_deadzone);
|
||||
~Potentiometer(void);
|
||||
|
||||
uint16_t low_deadzone;
|
||||
uint16_t high_deadzone;
|
||||
uint8_t percent;
|
||||
|
||||
uint8_t read(void);
|
||||
uint8_t update(void);
|
||||
};
|
||||
|
||||
/**** Public function declarations ****/
|
||||
|
||||
Reference in New Issue
Block a user