Other Parts Discussed in Thread: C2000WARE
I am wondering if I am using driverlib to write GPIO, how I I write multiple GPIO at the same time.
When I am using bitfield, I can do things like GpioDataRegs.GPADAT.all=0x8F7A; to figure multiple GPIOs at the same time. However , when using driverlib, it seems like I can only use GPIO_WritePin() to do this one by one and it wastes a lot of time.
1. The CPU needs to call GPIO_WritePin() multiple time
2. Each GPIO_WritePin() also needs plenty of time since it looks like this
void GPIO_WritePin(Uint16 gpioNumber, Uint16 outVal)
{
volatile Uint32 *gpioDataReg;
Uint32 pinMask;
gpioDataReg = (volatile Uint32 *)&GpioDataRegs + (gpioNumber/32)*GPY_DATA_OFFSET;
pinMask = 1UL << (gpioNumber % 32);
if (outVal == 0)
{
gpioDataReg[GPYCLEAR] = pinMask;
}
else
{
gpioDataReg[GPYSET] = pinMask;
}
}
Thanks
Yifu