Estoy intentando interconectar interruptores de botón momentáneos con mi Stellaris EK-LM4F120XL.
Estoy usando una interfaz lógica positiva, para establecer momentáneamente el pin como ALTO si se presiona el botón. Una resistencia de 10K se conecta a GND desde el interruptor, que luego se conecta a Vcc, 5V. El pin seleccionado está conectado a esta unión, configurando el pin como BAJO cuando no fluye corriente y hay una señal de 0V en el pin. Luego, cuando la corriente fluye, el voltaje en el pin es Vcc y se establece en ALTO.
Usando un multímetro, esto funciona perfectamente ... Aunque, cuando se realiza la depuración, la salida no se activa como se desea ...
Mi código de activación en main es el siguiente ...
if ((GPIOX_DATA & 0xXX) == 1) // IF THE PORTS' DATA REGISTER, AT PIN, IS HIGH,
GPIOX_DATA |= 0xXX; // SET THIS PORTS' DATA REGISTER, AT PIN, TO HIGH
(El control de configuración del pin a través del registro de datos funciona bien, por ejemplo, los LED de a bordo ..)
Tengo entendido que no puede escribir en un pin de entrada; por lo tanto, su valor se establece según su nivel lógico. Si tiene un voltaje de umbral similar a TTL o CMOS, el 5V activo en el pin debe configurarlo como ALTO - por lo tanto == 1.
Mi código de inicio establece el pin de entrada como - DIR como entrada AFSEL a regular DEN a digital ..
Incluso he intentado agregar la desactivación analógica a través de AMSEL, borrar el control de puerto a través de PCTL ... Solo para probar el control, quiero encender un LED incorporado mientras el botón está presionado ..
¿Me estoy perdiendo algo ...?