Estas en hackaday
si, lo envie y me lo han publicado... que bien!!
Aquí comento el código en C++ para manejar los GPIO. Es una clase que permite majerar cualquier pin del micro. Configura todo lo necesario(reloj, modo, velocidad...) de una manera transparente y solo te tienes que preocupar de decidir si es entrada o salida.
La configuración de los periféricos se simplifica mucho gracias a unas cuantas tablas que contienen los valores que son distintos valores para cada pin y se accede a ellos con la enumeración del propio pin.
Para encender un led, es necesario este codigo:
#include "Pin.hpp"
int main( void ){
Pin led = Pin( PIN_MODE_OUTPUT, PIN_PORT_A, PIN_BIT_0 );
Pin button = Pin( PIN_MODE_INPUT, PIN_PORT_A, PIN_BIT_1 );
while( 1 ){
led.write( button.read() );
}
return 0;
}
class Pin{
private:
tPinMode _mode;
tPinPort _port;
tPinBit _bit;
public:
Pin();
Pin( tPinMode mode, tPinPort port, tPinBit bit );
~Pin();
bool read();
void write(bool value);
void setPuPd( tPinPull pupd );
void AFConfig( uint8_t af );
};