Estoy usando un chip AT91SAM7 en el tablero de MakingThings para algún trabajo personalizado. Para comprender mejor el controlador de periféricos, estoy intentando llamar / controlar directamente un pin de salida (PA12) para encender el LED de estado.
main()
{
AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA12; //Enable Pin PA12
AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA12; // Enable Pin PA12 as 'peripheral manager' controlled pin
AT91C_BASE_PIOA->PIO_PPUDR = AT91C_PIO_PA12; //Disable Pull Up resistors
AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA12; // Set pin state to 'high'
}
Ese código se construye bien. Cuando quemo el firmware y lo pruebo, eso no enciende el LED en el pin A 12. El controlador periférico es un poco complejo, por lo que me preocupa que esté haciendo algo en un orden incorrecto o que me falte algo. otro registro que se debe establecer. ¿Alguien tiene comentarios o información sobre por qué podría estar mal?
(Puedo ejecutar otro código, hacer otros ejemplos, ejecutar datos USB, etc. Es solo el simple encendido de un LED que es extraño).