initialize output pins
This commit is contained in:
@@ -69,13 +69,4 @@ void PinController::initialize_port_expander(const uint8_t i2c_address, const ui
|
||||
CLOG(INFO, OUTPUT_LOGGER) << "MCP23017 initialized with i2c-address 0x" << hex_string << " and pin-base " << int(pin_base) << ".";
|
||||
}
|
||||
|
||||
|
||||
void PinController::initialize_pins_output(const uint8_t pin_base, std::map<std::string, uint8_t>::iterator begin, std::map<std::string, uint8_t>::iterator end)
|
||||
{
|
||||
for(; begin != end; begin++)
|
||||
{
|
||||
initialize_output_pin(pin_base + begin->second);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -33,8 +33,6 @@ protected:
|
||||
|
||||
static bool read_pin(uint8_t address);
|
||||
|
||||
static void initialize_pins_output(const uint8_t pin_base, std::map<std::string, uint8_t>::iterator begin, std::map<std::string, uint8_t>::iterator end);
|
||||
|
||||
public:
|
||||
static std::once_flag GPIO_LIB_INITIALIZED;
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace detail
|
||||
DisplayBoardPinController::DisplayBoardPinController(std::map<std::string, uint8_t> & pins_display) :
|
||||
pins_display_board{std::move(pins_display)}
|
||||
{
|
||||
initialize_pins_output(0, pins_display.begin(), pins_display.end());
|
||||
initialize_pins_output(pins_display.begin(), pins_display.end());
|
||||
|
||||
clear();
|
||||
|
||||
@@ -98,9 +98,17 @@ void DisplayBoardPinController::run_display(uint8_t address) const
|
||||
void DisplayBoardPinController::set_pin_map(std::map<std::string, uint8_t> & pins_display)
|
||||
{
|
||||
this->pins_display_board.insert(pins_display.begin(), pins_display.end());
|
||||
initialize_pins_output(0, pins_display.begin(), pins_display.end());
|
||||
|
||||
this->initialize_pins_output();
|
||||
|
||||
clear();
|
||||
}
|
||||
void DisplayBoardPinController::initialize_pins_output()
|
||||
{
|
||||
for(auto& pin : this->pins_display_board) {
|
||||
initialize_output_pin(pin.second);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ public:
|
||||
void set_pin_map(std::map<std::string, uint8_t> & pins_display);
|
||||
|
||||
private:
|
||||
void initialize_pins_output();
|
||||
void clear();
|
||||
void write_display_digit(uint8_t display_address, uint8_t content, uint8_t position) const;
|
||||
void select_display_segment(uint8_t digit) const;
|
||||
|
||||
@@ -56,18 +56,32 @@ void DriverBoardPinController::select_adress(uint8_t address)
|
||||
void DriverBoardPinController::set_address_pins(std::array<uint8_t, 3> address_pins)
|
||||
{
|
||||
this->address_pins = address_pins;
|
||||
|
||||
for(auto pin : address_pins)
|
||||
{
|
||||
initialize_output_pin(pin);
|
||||
}
|
||||
}
|
||||
void DriverBoardPinController::set_mux_pins(std::array<uint8_t, 13> mux_enable_pins)
|
||||
{
|
||||
this->mux_enable_pins = mux_enable_pins;
|
||||
|
||||
for(auto pin : mux_enable_pins)
|
||||
{
|
||||
initialize_output_pin(pin);
|
||||
}
|
||||
}
|
||||
void DriverBoardPinController::set_data_pin(uint8_t data_pin)
|
||||
{
|
||||
this->data_pin = data_pin;
|
||||
|
||||
initialize_output_pin(data_pin);
|
||||
}
|
||||
void DriverBoardPinController::set_run_pin(uint8_t run_pin)
|
||||
{
|
||||
this->run_pin = run_pin;
|
||||
|
||||
initialize_output_pin(run_pin);
|
||||
}
|
||||
|
||||
void DriverBoardPinController::select_mux(uint8_t mux)
|
||||
|
||||
Reference in New Issue
Block a user