diff --git a/firmware/src/board/ain.cpp b/firmware/src/bsp/ain.cpp similarity index 86% rename from firmware/src/board/ain.cpp rename to firmware/src/bsp/ain.cpp index ab87212..1d4cc06 100644 --- a/firmware/src/board/ain.cpp +++ b/firmware/src/bsp/ain.cpp @@ -3,7 +3,7 @@ #include "mcu/mcu_hal.h" #include "ain.h" -using namespace board; +using namespace bsp; /**** Private definitions ****/ /**** Private constants ****/ @@ -11,7 +11,7 @@ using namespace board; /**** Private function declarations ****/ /**** Public function definitions ****/ -board::AnalogIn::AnalogIn(uint8_t adc_ch) +bsp::AnalogIn::AnalogIn(uint8_t adc_ch) { this->adc_ch = adc_ch; this->mul = DEF_AIN_MUL; @@ -20,7 +20,7 @@ board::AnalogIn::AnalogIn(uint8_t adc_ch) this->last_read = 0; } -uint16_t board::AnalogIn::read(void) +uint16_t bsp::AnalogIn::read(void) { //Read ADC uint16_t raw = mcu::adc_read(this->adc_ch); diff --git a/firmware/src/board/ain.h b/firmware/src/bsp/ain.h similarity index 96% rename from firmware/src/board/ain.h rename to firmware/src/bsp/ain.h index 55809da..00b90b5 100644 --- a/firmware/src/board/ain.h +++ b/firmware/src/bsp/ain.h @@ -4,7 +4,7 @@ /**** Includes ****/ #include -namespace board { +namespace bsp { /**** Public definitions ****/ static const uint8_t DEF_AIN_MUL = 215; diff --git a/firmware/src/board/din.cpp b/firmware/src/bsp/din.cpp similarity index 78% rename from firmware/src/board/din.cpp rename to firmware/src/bsp/din.cpp index 5a89808..4ea82d3 100644 --- a/firmware/src/board/din.cpp +++ b/firmware/src/bsp/din.cpp @@ -3,7 +3,7 @@ #include "mcu/mcu_hal.h" #include "din.h" -using namespace board; +using namespace bsp; /**** Private definitions ****/ /**** Private constants ****/ @@ -11,7 +11,7 @@ using namespace board; /**** Private function declarations ****/ /**** Public function definitions ****/ -board::DigitalIn::DigitalIn(uint8_t gpio_ch, uint8_t inverted, uint8_t init_value) +bsp::DigitalIn::DigitalIn(uint8_t gpio_ch, uint8_t inverted, uint8_t init_value) { this->gpio_ch = gpio_ch; this->invert = inverted; @@ -20,12 +20,12 @@ board::DigitalIn::DigitalIn(uint8_t gpio_ch, uint8_t inverted, uint8_t init_valu else this->last_read = DIN_LOW; } -board::DigitalIn::~DigitalIn(void) +bsp::DigitalIn::~DigitalIn(void) { return; } -uint8_t board::DigitalIn::read(void) +uint8_t bsp::DigitalIn::read(void) { uint8_t lvl = mcu::gpio_read(this->gpio_ch); diff --git a/firmware/src/board/din.h b/firmware/src/bsp/din.h similarity index 96% rename from firmware/src/board/din.h rename to firmware/src/bsp/din.h index 4b0776e..8d8e924 100644 --- a/firmware/src/board/din.h +++ b/firmware/src/bsp/din.h @@ -4,7 +4,7 @@ /**** Includes ****/ #include -namespace board { +namespace bsp { /**** Public definitions ****/ const uint8_t DIN_LOW = 0; diff --git a/firmware/src/board/dio.cpp b/firmware/src/bsp/dio.cpp similarity index 68% rename from firmware/src/board/dio.cpp rename to firmware/src/bsp/dio.cpp index 9dc2934..ead2112 100644 --- a/firmware/src/board/dio.cpp +++ b/firmware/src/bsp/dio.cpp @@ -3,7 +3,7 @@ #include "mcu/mcu_hal.h" #include "dio.h" -using namespace board; +using namespace bsp; /**** Private definitions ****/ /**** Private constants ****/ @@ -11,17 +11,17 @@ using namespace board; /**** Private function declarations ****/ /**** Public function definitions ****/ -board::DigitalIO::DigitalIO(uint8_t gpio_ch, uint8_t init_value) : DigitalIn(gpio_ch, 0, init_value), DigitalOut(gpio_ch, 0) +bsp::DigitalIO::DigitalIO(uint8_t gpio_ch, uint8_t init_value) : DigitalIn(gpio_ch, 0, init_value), DigitalOut(gpio_ch, 0) { return; } -board::DigitalIO::~DigitalIO(void) +bsp::DigitalIO::~DigitalIO(void) { this->write(DOUT_HIZ); } -uint8_t board::DigitalIO::is_io_match(void) +uint8_t bsp::DigitalIO::is_io_match(void) { if(this->last_set == DOUT_HIZ) return 1; diff --git a/firmware/src/board/dio.h b/firmware/src/bsp/dio.h similarity index 96% rename from firmware/src/board/dio.h rename to firmware/src/bsp/dio.h index bddd90b..0506654 100644 --- a/firmware/src/board/dio.h +++ b/firmware/src/bsp/dio.h @@ -6,7 +6,7 @@ #include "din.h" #include "dout.h" -namespace board { +namespace bsp { /**** Public definitions ****/ const int8_t DIO_LOW = 0; diff --git a/firmware/src/board/dout.cpp b/firmware/src/bsp/dout.cpp similarity index 80% rename from firmware/src/board/dout.cpp rename to firmware/src/bsp/dout.cpp index b2e6608..fdb880b 100644 --- a/firmware/src/board/dout.cpp +++ b/firmware/src/bsp/dout.cpp @@ -3,7 +3,7 @@ #include "mcu/mcu_hal.h" #include "dout.h" -using namespace board; +using namespace bsp; /**** Private definitions ****/ /**** Private constants ****/ @@ -11,19 +11,19 @@ using namespace board; /**** Private function declarations ****/ /**** Public function definitions ****/ -board::DigitalOut::DigitalOut(uint8_t gpio_ch, uint8_t inverted) +bsp::DigitalOut::DigitalOut(uint8_t gpio_ch, uint8_t inverted) { this->gpio_ch = gpio_ch; this->invert = inverted; this->write(DOUT_HIZ); } -board::DigitalOut::~DigitalOut(void) +bsp::DigitalOut::~DigitalOut(void) { this->write(DOUT_HIZ); } -void board::DigitalOut::write(int8_t level) +void bsp::DigitalOut::write(int8_t level) { if(level > 0) { @@ -44,7 +44,7 @@ void board::DigitalOut::write(int8_t level) } } -int8_t board::DigitalOut::get_set_level(void) +int8_t bsp::DigitalOut::get_set_level(void) { return this->last_set; } diff --git a/firmware/src/board/dout.h b/firmware/src/bsp/dout.h similarity index 96% rename from firmware/src/board/dout.h rename to firmware/src/bsp/dout.h index 0cf0833..49c696e 100644 --- a/firmware/src/board/dout.h +++ b/firmware/src/bsp/dout.h @@ -4,7 +4,7 @@ /**** Includes ****/ #include -namespace board { +namespace bsp { /**** Public definitions ****/ const int8_t DOUT_LOW = 0; diff --git a/firmware/src/board/halfbridge.cpp b/firmware/src/bsp/halfbridge.cpp similarity index 73% rename from firmware/src/board/halfbridge.cpp rename to firmware/src/bsp/halfbridge.cpp index 7047e32..23321be 100644 --- a/firmware/src/board/halfbridge.cpp +++ b/firmware/src/bsp/halfbridge.cpp @@ -3,7 +3,7 @@ #include "mcu/mcu_hal.h" #include "halfbridge.h" -using namespace board; +using namespace bsp; /**** Private definitions ****/ /**** Private constants ****/ @@ -11,7 +11,7 @@ using namespace board; /**** Private function declarations ****/ /**** Public function definitions ****/ -board::Hafbridge::Hafbridge(uint8_t hs_pwm_ch, uint8_t ls_gpio_ch, uint8_t max_dc) +bsp::Hafbridge::Hafbridge(uint8_t hs_pwm_ch, uint8_t ls_gpio_ch, uint8_t max_dc) { this->pwm_ch = hs_pwm_ch; this->gpio_ch = ls_gpio_ch; @@ -23,13 +23,13 @@ board::Hafbridge::Hafbridge(uint8_t hs_pwm_ch, uint8_t ls_gpio_ch, uint8_t max_d this->disable(); } -board::Hafbridge::~Hafbridge(void) +bsp::Hafbridge::~Hafbridge(void) { this->last_duty = 0; this->disable(); } -void board::Hafbridge::write(uint16_t dividend) +void bsp::Hafbridge::write(uint16_t dividend) { // Limit duty if(dividend > this->max_dc) dividend = this->max_dc; @@ -41,32 +41,32 @@ void board::Hafbridge::write(uint16_t dividend) mcu::pwm_write(this->pwm_ch, dividend); } -void board::Hafbridge::write(uint8_t percent) +void bsp::Hafbridge::write(uint8_t percent) { // Convert to dividend/0xFFFF this->write(util::percent_to_16b(percent)); } -void board::Hafbridge::enable(void) +void bsp::Hafbridge::enable(void) { mcu::gpio_write(this->gpio_ch, mcu::LEVEL_HIGH); this->enabled = 1; this->write(this->last_duty); } -void board::Hafbridge::disable(void) +void bsp::Hafbridge::disable(void) { mcu::pwm_write(this->pwm_ch, 0); mcu::gpio_write(this->gpio_ch, mcu::LEVEL_LOW); this->enabled = 0; } -uint8_t board::Hafbridge::get_set_duty(void) +uint8_t bsp::Hafbridge::get_set_duty(void) { return this->last_duty; } -uint8_t board::Hafbridge::is_enabled(void) +uint8_t bsp::Hafbridge::is_enabled(void) { return this->enabled; } diff --git a/firmware/src/board/halfbridge.h b/firmware/src/bsp/halfbridge.h similarity index 97% rename from firmware/src/board/halfbridge.h rename to firmware/src/bsp/halfbridge.h index 6ea7a63..c75a21e 100644 --- a/firmware/src/board/halfbridge.h +++ b/firmware/src/bsp/halfbridge.h @@ -4,7 +4,7 @@ /**** Includes ****/ #include -namespace board { +namespace bsp { /**** Public definitions ****/ class Hafbridge diff --git a/firmware/src/board/mcu/mcu_hal.h b/firmware/src/bsp/mcu/mcu_hal.h similarity index 100% rename from firmware/src/board/mcu/mcu_hal.h rename to firmware/src/bsp/mcu/mcu_hal.h diff --git a/firmware/src/board/mcu/mcu_hal_r8.cpp b/firmware/src/bsp/mcu/mcu_hal_r8.cpp similarity index 100% rename from firmware/src/board/mcu/mcu_hal_r8.cpp rename to firmware/src/bsp/mcu/mcu_hal_r8.cpp diff --git a/firmware/src/board/pwm.cpp b/firmware/src/bsp/pwm.cpp similarity index 76% rename from firmware/src/board/pwm.cpp rename to firmware/src/bsp/pwm.cpp index a557bac..32db2c5 100644 --- a/firmware/src/board/pwm.cpp +++ b/firmware/src/bsp/pwm.cpp @@ -3,7 +3,7 @@ #include "mcu/mcu_hal.h" #include "pwm.h" -using namespace board; +using namespace bsp; /**** Private definitions ****/ /**** Private constants ****/ @@ -11,18 +11,18 @@ using namespace board; /**** Private function declarations ****/ /**** Public function definitions ****/ -board::PWMout::PWMout(uint8_t pwm_ch) +bsp::PWMout::PWMout(uint8_t pwm_ch) { this->pwm_ch = pwm_ch; this->write(0); } -board::PWMout::~PWMout(void) +bsp::PWMout::~PWMout(void) { this->write(0); } -void board::PWMout::write(uint8_t duty) +void bsp::PWMout::write(uint8_t duty) { // Convert percent to 16b duty cycle uint16_t dc = util::percent_to_16b(duty); @@ -32,7 +32,7 @@ void board::PWMout::write(uint8_t duty) this->last_duty = duty; } -uint8_t board::PWMout::get_set_duty(void) +uint8_t bsp::PWMout::get_set_duty(void) { return this->last_duty; } diff --git a/firmware/src/board/pwm.h b/firmware/src/bsp/pwm.h similarity index 95% rename from firmware/src/board/pwm.h rename to firmware/src/bsp/pwm.h index af96a1b..c5b6cef 100644 --- a/firmware/src/board/pwm.h +++ b/firmware/src/bsp/pwm.h @@ -4,7 +4,7 @@ /**** Includes ****/ #include -namespace board { +namespace bsp { /**** Public definitions ****/ class PWMout diff --git a/firmware/src/hw/button.cpp b/firmware/src/hw/button.cpp index 12fc029..cf584b2 100644 --- a/firmware/src/hw/button.cpp +++ b/firmware/src/hw/button.cpp @@ -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(); diff --git a/firmware/src/hw/button.h b/firmware/src/hw/button.h index 8c7b87e..b77e549 100644 --- a/firmware/src/hw/button.h +++ b/firmware/src/hw/button.h @@ -3,7 +3,7 @@ /**** Includes ****/ #include -#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 ****/ diff --git a/firmware/src/hw/cv_otput.cpp b/firmware/src/hw/cv_otput.cpp index f2c25f8..8913c9a 100644 --- a/firmware/src/hw/cv_otput.cpp +++ b/firmware/src/hw/cv_otput.cpp @@ -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) diff --git a/firmware/src/hw/cv_output.h b/firmware/src/hw/cv_output.h index 37a5b66..03de3a9 100644 --- a/firmware/src/hw/cv_output.h +++ b/firmware/src/hw/cv_output.h @@ -3,7 +3,8 @@ /**** Includes ****/ #include -#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); diff --git a/firmware/src/hw/display_led.cpp b/firmware/src/hw/display_led.cpp index 8d70ac8..801d0da 100644 --- a/firmware/src/hw/display_led.cpp +++ b/firmware/src/hw/display_led.cpp @@ -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; diff --git a/firmware/src/hw/display_led.h b/firmware/src/hw/display_led.h index 8bba1aa..455e5ad 100644 --- a/firmware/src/hw/display_led.h +++ b/firmware/src/hw/display_led.h @@ -3,8 +3,8 @@ /**** Includes ****/ #include -#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); diff --git a/firmware/src/hw/potentiometer.cpp b/firmware/src/hw/potentiometer.cpp index 0c88a36..6559b2b 100644 --- a/firmware/src/hw/potentiometer.cpp +++ b/firmware/src/hw/potentiometer.cpp @@ -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); diff --git a/firmware/src/hw/potentiometer.h b/firmware/src/hw/potentiometer.h index 5a853cc..2321f7f 100644 --- a/firmware/src/hw/potentiometer.h +++ b/firmware/src/hw/potentiometer.h @@ -3,7 +3,7 @@ /**** Includes ****/ #include -#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 ****/ diff --git a/firmware/src/main.cpp b/firmware/src/main.cpp index 6e43c7c..b730192 100644 --- a/firmware/src/main.cpp +++ b/firmware/src/main.cpp @@ -1,13 +1,13 @@ /**** Includes ****/ #include "utils/utils.h" -#include "board/mcu/mcu_hal.h" -#include "board/ain.h" -#include "board/din.h" -#include "board/dout.h" -#include "board/dio.h" -#include "board/halfbridge.h" -#include "board/pwm.h" +#include "bsp/mcu/mcu_hal.h" +#include "bsp/ain.h" +#include "bsp/din.h" +#include "bsp/dout.h" +#include "bsp/dio.h" +#include "bsp/halfbridge.h" +#include "bsp/pwm.h" #include "hw/button.h" #include "hw/potentiometer.h" @@ -15,63 +15,49 @@ #include "hw/cv_output.h" /**** Private definitions ****/ -static board::AnalogIn dccd_i(mcu::ADC0); -static board::AnalogIn dccd_u(mcu::ADC1); -static board::AnalogIn bat_u(mcu::ADC2); -static board::AnalogIn bat_i(mcu::ADC3); +/**** Private constants ****/ +/**** Private variables ****/ +static bsp::AnalogIn dccd_i(mcu::ADC0); +static bsp::AnalogIn dccd_u(mcu::ADC1); +static bsp::AnalogIn bat_u(mcu::ADC2); +static bsp::AnalogIn bat_i(mcu::ADC3); +static bsp::Hafbridge hbridge(mcu::PWM0, mcu::GPIO15, 95); +static bsp::AnalogIn ain1(mcu::ADC5); // mode +static bsp::AnalogIn ain2(mcu::ADC4); // pot +static bsp::DigitalIn din1(mcu::GPIO0, 0, bsp::DIN_HIGH); //mode +static bsp::DigitalIn din2(mcu::GPIO1, 0, bsp::DIN_HIGH); //pot +static bsp::DigitalIn din3(mcu::GPIO2, 0, bsp::DIN_HIGH); //down +static bsp::DigitalIn din4(mcu::GPIO3, 0, bsp::DIN_HIGH); //up +static bsp::DigitalIn hvdin1(mcu::GPIO4, 1, bsp::DIN_LOW); //dimm +static bsp::DigitalIn hvdin2(mcu::GPIO5, 1, bsp::DIN_LOW); //brakes +static bsp::DigitalIn hvdin3(mcu::GPIO6, 1, bsp::DIN_LOW); //hbrake +static bsp::DigitalIO hvdin3_pull(mcu::GPIO7, bsp::DIN_HIGH); //hbrake pull +static bsp::DigitalOut odout1(mcu::GPIO9, 1); +static bsp::DigitalOut odout2(mcu::GPIO10, 1); +static bsp::DigitalOut odout3(mcu::GPIO11, 1); +static bsp::DigitalOut odout4(mcu::GPIO12, 1); +static bsp::DigitalOut odout5(mcu::GPIO13, 1); +static bsp::DigitalOut odout6(mcu::GPIO14, 1); +static bsp::PWMout od_pwm(mcu::PWM1); -static board::Hafbridge hbridge(mcu::PWM0, mcu::GPIO15, 95); +static hw::Button btn_mode(&din1, bsp::DIN_LOW, 10, hw::BUTTON_OFF); +static hw::Button btn_up(&din4, bsp::DIN_LOW, 10, hw::BUTTON_OFF); +static hw::Button btn_down(&din3, bsp::DIN_LOW, 10, hw::BUTTON_OFF); -static board::AnalogIn ain1(mcu::ADC5); // mode -static board::AnalogIn ain2(mcu::ADC4); // pot - -static board::DigitalIn din1(mcu::GPIO0, 0, board::DIN_HIGH); //mode -static board::DigitalIn din2(mcu::GPIO1, 0, board::DIN_HIGH); //pot -static board::DigitalIn din3(mcu::GPIO2, 0, board::DIN_HIGH); //down -static board::DigitalIn din4(mcu::GPIO3, 0, board::DIN_HIGH); //up - -static board::DigitalIn hvdin1(mcu::GPIO4, 1, board::DIN_LOW); //dimm -static board::DigitalIn hvdin2(mcu::GPIO5, 1, board::DIN_LOW); //brakes -static board::DigitalIn hvdin3(mcu::GPIO6, 1, board::DIN_LOW); //hbrake -static board::DigitalIO hvdin3_pull(mcu::GPIO7, board::DIN_HIGH); //hbrake pull - -static board::DigitalOut odout1(mcu::GPIO9, 1); -static board::DigitalOut odout2(mcu::GPIO10, 1); -static board::DigitalOut odout3(mcu::GPIO11, 1); -static board::DigitalOut odout4(mcu::GPIO12, 1); -static board::DigitalOut odout5(mcu::GPIO13, 1); -static board::DigitalOut odout6(mcu::GPIO14, 1); - -static board::PWMout od_pwm(mcu::PWM1); - -static hw::Button btn_mode(&din1, board::DIN_LOW, 10, hw::BUTTON_OFF); -static hw::Button btn_up(&din4, board::DIN_LOW, 10, hw::BUTTON_OFF); -static hw::Button btn_down(&din3, board::DIN_LOW, 10, hw::BUTTON_OFF); - -static hw::Button sw_dimm(&hvdin1, board::DIN_HIGH, 10, hw::BUTTON_OFF); -static hw::Button sw_brakes(&hvdin2, board::DIN_HIGH, 10, hw::BUTTON_OFF); -static hw::Button sw_hbrake(&hvdin3, board::DIN_LOW, 10, hw::BUTTON_OFF); +static hw::Button sw_dimm(&hvdin1, bsp::DIN_HIGH, 10, hw::BUTTON_OFF); +static hw::Button sw_brakes(&hvdin2, bsp::DIN_HIGH, 10, hw::BUTTON_OFF); +static hw::Button sw_hbrake(&hvdin3, bsp::DIN_LOW, 10, hw::BUTTON_OFF); static hw::Potentiometer pot(&ain2, 500, 4500); static hw::DisplayLed display(&odout1, &odout2, &odout3, &odout4, &odout5, &odout6, &od_pwm); -static hw::CVoutput cvout(&hbridge); +static hw::CVoutput cvout(&hbridge, &bat_u); -/**** Private constants ****/ -/**** Private variables ****/ /**** Private function declarations ****/ -static void board_setup(void); - /**** Public function definitions ****/ int main(void) { - board_setup(); - - cvout.target = 0; - cvout.min_out = 500; - cvout.enable(); - // Super loop while(1) { @@ -83,35 +69,3 @@ int main(void) } /**** Private function definitions ***/ -static void board_setup(void) -{ - mcu::startupCfg_t mcu_cfg; - mcu_cfg.adc_clk = mcu::ADC_DIV2; - mcu_cfg.pwm_clk = mcu::TIM_DIV1; - mcu_cfg.pwm_top = 200; - mcu_cfg.pwm_ch1_en = 1; - - mcu::startup(&mcu_cfg); - - dccd_i.mul = 215; - dccd_i.div = 22; - dccd_i.offset = 0; - dccd_i.last_read = 0; - - dccd_u.mul = 20; - dccd_u.div = 1; - dccd_u.offset = 0; - dccd_u.last_read = 0; - - bat_u.mul = 20; - bat_u.div = 1; - bat_u.offset = 0; - bat_u.last_read = 12000; - - bat_i.mul = 235; - bat_i.div = 6; - bat_i.offset = 0; - bat_i.last_read = 0; - - od_pwm.write(100); -} \ No newline at end of file diff --git a/firmware/src/uDCCD.cppproj b/firmware/src/uDCCD.cppproj index 5f63a83..e57255b 100644 --- a/firmware/src/uDCCD.cppproj +++ b/firmware/src/uDCCD.cppproj @@ -153,46 +153,46 @@ - + compile - + compile - + compile - + compile - + compile - + compile - + compile - + compile - + compile - + compile - + compile - + compile - + compile - + compile @@ -236,8 +236,8 @@ - - + +