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 beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/dd89965b-ae8b-4d5a-b4f7-1d5c487261b7o%40googlegroups.com.

Reply via email to