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) void DriverBoardPinController::activate(items::DriverBoardItem &driver_board_item)
{ {
this->deselect_all_muxes();
std::lock_guard<std::mutex> guard(*output_item_mutex); std::lock_guard<std::mutex> guard(*output_item_mutex);
uint8_t address = driver_board_item.get_address(); uint8_t address = driver_board_item.get_address();
@@ -31,10 +32,12 @@ void DriverBoardPinController::activate(items::DriverBoardItem &driver_board_ite
this->select_adress(address); this->select_adress(address);
write_pin(this->data_pin, true); write_pin(this->data_pin, true);
this->deselect_all_muxes();
} }
void DriverBoardPinController::deactivate(items::DriverBoardItem &driver_board_item) void DriverBoardPinController::deactivate(items::DriverBoardItem &driver_board_item)
{ {
this->deselect_all_muxes();
std::lock_guard<std::mutex> guard(*output_item_mutex); std::lock_guard<std::mutex> guard(*output_item_mutex);
uint8_t address = driver_board_item.get_address(); uint8_t address = driver_board_item.get_address();
@@ -43,6 +46,7 @@ void DriverBoardPinController::deactivate(items::DriverBoardItem &driver_board_i
this->select_adress(address); this->select_adress(address);
write_pin(this->data_pin, false); write_pin(this->data_pin, false);
this->deselect_all_muxes();
} }
void DriverBoardPinController::select_adress(uint8_t address) 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) for(auto pin : address_pins)
{ {
initialize_output_pin(pin); 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) 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) for(auto pin : mux_enable_pins)
{ {
initialize_output_pin(pin); initialize_output_pin(pin);
write_pin(pin, 0); write_pin(pin, 1);
} }
} }
void DriverBoardPinController::set_data_pin(uint8_t data_pin) 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) void DriverBoardPinController::select_mux(uint8_t mux)
{ {
this->deselect_all_muxes();
write_pin(this->mux_enable_pins[mux], 0); write_pin(this->mux_enable_pins[mux], 0);
} }