LPC11u68 + LPCExpresso: GPIO - co dělám špatně?

Pavel Hudecek edizon na seznam.cz
Neděle Červen 19 23:47:33 CEST 2016


Dobrý den všem,

hraju si tu s LPC11u68 v LPCExpresso. HW (kromě asi upečeného RTC krystalu) 
zjevně chodí, ale nedaří se mi číst vstupy:

Provede se tato inicializace:

/* Initialize GPIO */
Chip_GPIO_Init(LPC_GPIO);

/* Enable and setup SysTick Timer at a periodic rate */
SysTick_Config(SystemCoreClock / 1000);

/* Configure GPIO pin as input */
Chip_GPIO_SetPinDIRInput(LPC_GPIO, KOL1_aPort, KOL1_aPin);
Chip_GPIO_SetPinDIRInput(LPC_GPIO, KOL1_bPort, KOL1_bPin);
Chip_GPIO_SetPinDIRInput(LPC_GPIO, KOL2_aPort, KOL2_aPin);
Chip_GPIO_SetPinDIRInput(LPC_GPIO, KOL2_bPort, KOL2_bPin);

Pak chci číst s pomocí:
Chip_GPIO_ReadPortBit(LPC_GPIO, port, pin)

Ale výsledek je pro všechny čtyři stále true, ať je na vstupu 1, nebo 0.

Co dělám špatně?

Předchází tyto definice:

#define KOL1_aPort            0
#define KOL1_bPort            0
#define KOL2_aPort            2
#define KOL2_bPort            2

#define KOL1_aPin            2
#define KOL1_bPin            20
#define KOL2_aPin            2
#define KOL2_bPin            5

/**
* @brief  GPIO port register block structure
*/
typedef struct {                /*!< GPIO_PORT Structure */
    __IO uint8_t B[128][32];    /*!< Offset 0x0000: Byte pin registers ports 
0 to n; pins PIOn_0 to PIOn_31 */
    __IO uint32_t W[32][32];    /*!< Offset 0x1000: Word pin registers port 
0 to n */
    __IO uint32_t DIR[32];        /*!< Offset 0x2000: Direction registers 
port n */
    __IO uint32_t MASK[32];        /*!< Offset 0x2080: Mask register port n 
*/
    __IO uint32_t PIN[32];        /*!< Offset 0x2100: Portpin register port 
n */
    __IO uint32_t MPIN[32];        /*!< Offset 0x2180: Masked port register 
port n */
    __IO uint32_t SET[32];        /*!< Offset 0x2200: Write: Set register 
for port n Read: output bits for port n */
    __O  uint32_t CLR[32];        /*!< Offset 0x2280: Clear port n */
    __O  uint32_t NOT[32];        /*!< Offset 0x2300: Toggle port n */
} LPC_GPIO_T;
#define LPC_GPIO_PORT_BASE        0xA0000000
#define LPC_GPIO                  ((LPC_GPIO_T             *) 
LPC_GPIO_PORT_BASE)

Díky,
PH 



Další informace o konferenci Hw-list