
Hola compañeros!
Pues yo traigo un problema con el puerto A al escribir en él y no puedo establecer de qué se trata. El código es sencillo y está en MikroC 8.20
void Conf_Init() // *** Configuración de puertos y periféricos *** //
{
TRISC = 0x00; // PortC as output
TRISA = 0x00; // PortA as output
PORTC = 0x00; // Limpio port C
PORTA = 0x00; // Limpio port A
}
void main()
{
Conf_Init(); // Configuro puertos y periféricos
PORTA=0x0F; // escribo 1's en PA.0..PA.3
Delay_ms(3000);
PORTA=PORTA&0x0E; // debería poner el PA.0 en 0 y el resto dejarlo en 1
misc: goto misc
}
El resultado es que todos los bits del puerto A se ponen en 0 y no debía suceder.
También probé este otro ejemplo:
void Conf_Init() // *** Configuración de puertos y periféricos *** //
{
TRISC = 0x00; // PortC as output
TRISA = 0x00; // PortA as output
PORTC = 0x00; // Limpio port C
PORTA = 0x00; // Limpio port A
}
void main()
{
Conf_Init(); // Configuro puertos y periféricos
PORTA=0x0F;
Delay_ms(3000);
PORTA=PORTA|0x10;
misc: goto misc
}
En este último ejemplo debería de quedar el resultado como: PA0..PA3 en 1's y PA4 en 1. Sin embargo, al correr el programita en el micro y medir los pines del puerto tengo a PA4 en 1 y el resto de los pines PA0 .. PA3 en 0.
¿Alguna sugerencia sobre dónde pudiera estar el error? Nota: PA4 está conectado a Vcc con una R=4,7K.
