diff --git a/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp b/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp index b37c925..db144bb 100644 --- a/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp +++ b/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp @@ -23,6 +23,7 @@ DriverBoardPinController::DriverBoardPinController(std::shared_ptr o void DriverBoardPinController::activate(items::DriverBoardItem &driver_board_item) { + this->deselect_all_muxes(); std::lock_guard 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 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 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 mux_enable_pins) @@ -70,7 +74,7 @@ void DriverBoardPinController::set_mux_pins(std::array 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); }