ftdipp_mpsse: reduce useless write

This commit is contained in:
Gwenhael Goavec-Merou 2020-10-31 11:10:14 +01:00
parent 1dd7d7b6f4
commit 818dbd301c
1 changed files with 16 additions and 8 deletions

View File

@ -371,10 +371,14 @@ uint8_t FTDIpp_MPSSE::gpio_get(bool low_pins)
*/ */
bool FTDIpp_MPSSE::gpio_set(uint16_t gpios) bool FTDIpp_MPSSE::gpio_set(uint16_t gpios)
{ {
_cable.bit_high_val |= (0xff & (gpios >> 8)); if (gpios & 0x00ff) {
_cable.bit_low_val |= (0xff & gpios); _cable.bit_low_val |= (0xff & gpios);
__gpio_write(true); __gpio_write(true);
__gpio_write(false); }
if (gpios & 0xff00) {
_cable.bit_high_val |= (0xff & (gpios >> 8));
__gpio_write(false);
}
return (mpsse_write() >= 0); return (mpsse_write() >= 0);
} }
@ -401,10 +405,14 @@ bool FTDIpp_MPSSE::gpio_set(uint8_t gpios, bool low_pins)
*/ */
bool FTDIpp_MPSSE::gpio_clear(uint16_t gpios) bool FTDIpp_MPSSE::gpio_clear(uint16_t gpios)
{ {
_cable.bit_high_val &= ~(0xff & (gpios >> 8)); if (gpios & 0x00ff) {
_cable.bit_low_val &= ~(0xff & gpios); _cable.bit_low_val &= ~(0xff & gpios);
__gpio_write(true); __gpio_write(true);
__gpio_write(false); }
if (gpios & 0xff00) {
_cable.bit_high_val &= ~(0xff & (gpios >> 8));
__gpio_write(false);
}
return (mpsse_write() >= 0); return (mpsse_write() >= 0);
} }