He estado aprendiendo a programar el microcontrolador LPC2148 (ARM7), y hoy conseguí una placa LPC1768 (Cortex M3). Al referirme a su manual, traté de hacer un programa de parpadeo de LED y lo hice de la siguiente manera, siguiendo los mismos métodos que LPC2148 (configuración de bloque de conexión de pin y registros GPIO)
#include <LPC17xx.H>
int main()
{
int i;
PINSEL0 = 0;
FIO0DIR = 0XFFFFFFFF;
while(1)
{
FIO0SET = 0XFFFFFFFF;
for(i=0; i<100000; i++);
FIO0CLR = 0XFFFFFFFF;
for(i=0; i<100000; i++);
}
}
Pero tiene un error como PINSEL, FI0SET ... como indefinido.
después de consultar algunos códigos de ejemplo, tengo que usar
LPC_PINCON->PINSEL0 = 0X00000000;
LPC_GPIO0->FIODIR
¿De dónde viene este LPC_GPIO & LPC_PINCON viene de? Según un tutorial en línea
Según la convención de CMSIS, los registros que vimos se agrupan en estructuras. LPC_GPIOx se define como un puntero a esta estructura en el encabezado LPC17xx.h. Estos registros se definen como miembros de esta estructura. Por lo tanto, para utilizar cualquier registro, por ejemplo, FIODIR, debemos usar la flecha "- >" operador para desviar la referencia de los miembros de la estructura (ya que la estructura en sí es un puntero) para acceder al registro de la siguiente manera: LPC_GPIO0- > FIODIR = algún valor.
No pude encontrar ninguna referencia a esto en el manual.
¿Hay documentación disponible?