There're two options to control the 32 outputs of a GPIO subsystem:
1. writes to register GPIO_DATAOUT, or
2. writes to registers GPIO_SETDATAOUT and GPIO_CLEARDATAOUT
In the first case all pins switch at the exact same time. But there's a
downside in controlling all 32 pins at once: it may override changes on
lines controlled by other software.
The second option is a convenient way to avoid that overriding. The
registers GPIO_SETDATAOUT and GPIO_CLEARDATAOUT can be used to change only
the masked pins. As long as only one register is necessary (ie all pins
set, or all pins cleared) the change is at the exact same time. In contrast
when performing mixed changes (some pins set, others cleared) you'll see a
delay between the output changes depending on the L3 latency.
@Mark
In order to testing gpiod you should use mixed changes
while true; do
gpioset 1 18=0 19=1
gpioset 1 18=1 19=0
done
Regards
BTW:
Changing multiple pins on the same chip all at once is supported in libpruio
<https://github.com/DTJF/libpruio> since version 0.0 (2014, kernel 3.8).
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/dd89965b-ae8b-4d5a-b4f7-1d5c487261b7o%40googlegroups.com.