The mask affects the bits that you actually write to the attribute. In this case:
uhd_usrp_set_gpio_attr(usrp, bank, "DDR", 1, 0x02, mboard); ...you're setting the DDR register to 0x01 and the mask to 0x02. 0x01 & 0x02 == 0, so you're not setting anything. This works: uhd_usrp_set_gpio_attr(usrp, bank, "DDR", 1, 0x01, mboard); uhd_usrp_set_gpio_attr(usrp, bank, "DDR", 0x02, 0x02, mboard); ...but this also saves you a call: uhd_usrp_set_gpio_attr(usrp, bank, "DDR", 0x03, 0x03, mboard); --M On Mon, Jan 27, 2025 at 5:05 AM <kavin...@atindriya.co.in> wrote: > Hi, > I have one issue in accessing the GPIO pin in B205mini-i board. > what is the mask value in the API uhd_usrp_set_gpio_attr() function? > > I have written code to access the pin 1 and 2. For that I have given > the mask value as 0x01 and 0x02. I am able to control the GPIO pin 1 > with mask value 0x01. But, I am unable to access the GPIO pin 2 with > mask value 0x02. > What may be the issue? > The following is the code I have written. > > const char* bank = "FP0"; > size_t mboard = 0; > > uhd_usrp_set_gpio_attr(usrp, bank, "CTRL", 0, 0x01, mboard); > uhd_usrp_set_gpio_attr(usrp, bank, "CTRL", 0, 0x02, mboard); > > uhd_usrp_set_gpio_attr(usrp, bank, "DDR", 1, 0x01, mboard); > uhd_usrp_set_gpio_attr(usrp, bank, "DDR", 1, 0x02, mboard); > > uhd_usrp_set_gpio_attr(usrp, bank, "OUT", 0, 0x01, mboard); > uhd_usrp_set_gpio_attr(usrp, bank, "OUT", 0, 0x02, mboard); > > Thanks, > Kavinraj. > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-le...@lists.ettus.com >
_______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com