Other Parts Discussed in Thread: C2000WARE
Dear All,
I'm testing the output of GPIO06 ~ GPIO11 through register to reduce access time as following.
// define the addresses
#define ADD_ACC_GPASET (volatile uint32_t *)(0x00006FC2)
#define ADD_ACC_GPACLEAR (volatile uint32_t *)(0x00006FC4)
#define ADD_ACC_GPATOGGLE (volatile uint32_t *)(0x00006FC6)
#define ADD_ACC_GPASET_GP00_GP15 (volatile uint16_t *)(0x00006FC2)
#define ADD_ACC_GPASET_GP16_GP31 (volatile uint16_t *)(0x00006FC3)
#define ADD_ACC_GPACLEAR_GP00_GP15 (volatile uint16_t *)(0x00006FC4)
#define ADD_ACC_GPACLEAR_GP16_GP31 (volatile uint16_t *)(0x00006FC5)
#define ADD_ACC_GPATOGGLE_GP00_GP15 (volatile uint16_t *)(0x00006FC6)
#define ADD_ACC_GPATOGGLE_GP16_GP31 (volatile uint16_t *)(0x00006FC7)
// testing code : case #1 start
EALLOW; // meaningless
*ADD_ACC_GPASET = 0x00000040;
asm(" RPT #7 || NOP");
EDIS; // meaningless
// testing code : case #1 end => RESULT : GPADAT register value is correct and GIPO06 pin is high state.
// testing code : case #2 start
EALLOW; // meaningless
*ADD_ACC_GPASET = 0x000000C0;
asm(" RPT #7 || NOP");
EDIS; // meaningless
// testing code : case #1 end => RESULT : GPADAT register value is correct but GIPO06 , GPIO07 pins are low state.
// testing code : case #3 start
EALLOW; // meaningless
*ADD_ACC_GPASET = 0x000007C0;
asm(" RPT #7 || NOP");
EDIS; // meaningless
// testing code : case #3 end => RESULT : GPADAT register value is correct but GIPO06 , GPIO07, GIPO08 , GPIO09, pins are low state, and GPIO10 pin is high state.
Is there any way to handle the desired GPIOs at once?
I attached status of GPIO related registers as following.
Sincerely,
Eui-heon