I tested it once, however with org. defines (here for GPIO4):
WRITE_PERI_REG(PERIPHS_GPIO_BASEADDR+GPIO_OUT_W1TS_ADDRESS,BIT4);
WRITE_PERI_REG(PERIPHS_GPIO_BASEADDR+GPIO_OUT_W1TC_ADDRESS,BIT4);
one can of course use predefined macro (and that is described in the pdf above):
GPIO_REG_WRITE(GPIO_OUT_W1TS_ADDRESS,BIT4);
GPIO_REG_WRITE(GPIO_OUT_W1TC_ADDRESS,BIT4)
(a quick look into eagle_soc.h, #define GPIO_REG_WRITE(reg, val) WRITE_PERI_REG(PERIPHS_GPIO_BASEADDR + reg, val))
Anyway, the result is of course exact the same.
When writing directly to the out register one can toggle a PIN with ~5714kHz instead of ~825kHz, which was the
case when using GPIO_OUTPUT_SET(GPIO_ID_PIN(4), 1) instead.
One need to know that only GPIO0 to GPIO15 can be accessed like that, to use GPIO16 one need to use the slow API.
I want to reach out with something other than these prehensile paws and feel the solar wind of a supernova flowing over me.