¿Qué causa la activación de un solo pin de salida en el Microchip PIC16F690 para apagar espontáneamente otro pin en el mismo puerto? Puedo solucionar este problema escribiendo un byte en todo el puerto, controlando todos los pines simultáneamente, en lugar de solo un bit para controlar el estado del pin. Estoy usando el compilador Hi-Tech C aquí. Estoy determinando el estado del pin con 9 LED cada uno consumiendo 3 mA. Esto está muy por debajo de las especificaciones de potencia máxima.
El archivo de cabecera mplab tiene el pin 0 en el puerto A declarado como tal:
volatile bit RA0 @ ((unsigned)&PORTA*8)+0;
Estoy activando el pin al escribirle un alto valor.
RA0 = 1;
¿El problema es que el complaciente trata el "1" como un byte y escribe a todo el puerto? ¿Necesito lanzarlo? Si es así, ¿no debería haber dado el complaciente un error?
RA0 = (bit) 1;
Si escribo en todo el puerto, todo funciona como se espera:
PORTA = 0b00000001;