GPIO over CPLD
Each of the 4 GPIO ports contains 8 ouput and 8 input pins. The ports are not as fast as the integrated GPIO ports of the microcontroller.
Registers
Input
Output
Diagram
Programming Example
The code snippets below show how to use the GPIO.
#include "reg_ctboard.h" uint8_t data_byte = CT_GPIO->IN.BYTE.P1; /* Read byte from P1. */ uint16_t data_hword = CT_GPIO->IN.HWORD.P2_1; /* Read half word from P1 and P2. */ uint32_t data_word = CT_GPIO->IN.WORD; /* Read word from all ports (P1..4). */ CT_GPIO->OUT.BYTE.P3 = (uint8_t) data_byte; /* Write byte of data to P3. */ CT_GPIO->OUT.HWORD.P4_3 = (uint16_t) data_halfword; /* Write halfword of data to P3..4 */ CT_GPIO->OUT.WORD = (uint32_t) data_word; /* Write word of data to all ports (P1..4). */
ADDR_GPIO_IN EQU 0x60000410 ADDR_GPIO_OUT EQU 0x60000400 LDR r0, =ADDR_GPIO_IN LDRB r1, [r0, #0] ; Read byte from P1. LDRH r1, [r0, #0] ; Read half word from P1 and P2. LDR r1, [r0, #0] ; Read word from all ports (P1..4). LDR r0, =ADDR_GPIO_OUT STRB r1, [r0, #2] ; Write byte of data to P3. STRH r1, [r0, #2] ; Write halfword of data to P3..4. STR r1, [r0, #0] ; Write word of data to all ports (P1..4).