disable muxes for write

This commit is contained in:
Jonas Zeunert
2020-01-15 19:00:17 +01:00
parent e6cb8cfac8
commit 495e5c8a92

View File

@@ -23,6 +23,7 @@ DriverBoardPinController::DriverBoardPinController(std::shared_ptr<std::mutex> o
void DriverBoardPinController::activate(items::DriverBoardItem &driver_board_item)
{
this->deselect_all_muxes();
std::lock_guard<std::mutex> guard(*output_item_mutex);
uint8_t address = driver_board_item.get_address();
@@ -31,10 +32,12 @@ void DriverBoardPinController::activate(items::DriverBoardItem &driver_board_ite
this->select_adress(address);
write_pin(this->data_pin, true);
this->deselect_all_muxes();
}
void DriverBoardPinController::deactivate(items::DriverBoardItem &driver_board_item)
{
this->deselect_all_muxes();
std::lock_guard<std::mutex> guard(*output_item_mutex);
uint8_t address = driver_board_item.get_address();
@@ -43,6 +46,7 @@ void DriverBoardPinController::deactivate(items::DriverBoardItem &driver_board_i
this->select_adress(address);
write_pin(this->data_pin, false);
this->deselect_all_muxes();
}
void DriverBoardPinController::select_adress(uint8_t address)
@@ -60,7 +64,7 @@ void DriverBoardPinController::set_address_pins(std::array<uint8_t, 3> address_p
for(auto pin : address_pins)
{
initialize_output_pin(pin);
write_pin(pin, 0);
write_pin(pin, 1);
}
}
void DriverBoardPinController::set_mux_pins(std::array<uint8_t, 13> mux_enable_pins)
@@ -70,7 +74,7 @@ void DriverBoardPinController::set_mux_pins(std::array<uint8_t, 13> mux_enable_p
for(auto pin : mux_enable_pins)
{
initialize_output_pin(pin);
write_pin(pin, 0);
write_pin(pin, 1);
}
}
void DriverBoardPinController::set_data_pin(uint8_t data_pin)
@@ -91,7 +95,6 @@ void DriverBoardPinController::set_run_pin(uint8_t run_pin)
void DriverBoardPinController::select_mux(uint8_t mux)
{
this->deselect_all_muxes();
write_pin(this->mux_enable_pins[mux], 0);
}