No se puede obtener la salida de GP5 y GP3 en PIC12F629

1

No puedo obtener resultados de GP5 y GP3 de un PIC12F629 que tengo. Mi código es el siguiente:

#include <xc.h>
#define _XTAL_FREQ 20000000
#pragma config WDTE=OFF , BOREN=OFF , PWRTE=ON , MCLRE=OFF , FOSC=INTRCIO

void main(){
TRISIO = 0;
GPIO = 0;
    while(1){
        GPIO = 1b11111;
    }

}

Cuando conecté la resistencia y el LED a otros pines, todos los LED se encienden, excepto los que están conectados a los pines 2 y 4. Verifiqué tanto el LED como la resistencia y están funcionando bien. El MCU es nuevo. Incluso probé esta configuración con otro IC usado anteriormente.

¿Qué hice mal?

¿Puede alguien explicar qué significa 1b o 0b en el valor de GPIO? Supongo que b podría ser binario.

Nota: Mi IDE es MPLAB X, XC8.

    
pregunta Shombol-shagol

1 respuesta

2

Consulte la tabla en la página 6 de la hoja de datos PIC12F629 , enumera GP3 como:

  

Puerto de entrada w / interrupt-on-change

Luego otra vez en la página 23:

  

La Figura 3-3 muestra el diagrama para este pin. El pin GP3 es configurable   para funcionar como uno de los siguientes:

     

• una entrada de propósito general

     

• como Master Clear Reset

GP3 solo se puede usar como entrada en este dispositivo.

Como se señaló en los comentarios, el prefijo 1b es inusual, los compiladores modernos de Microchip en el rango XC son compatibles con el estándar 0b como un prefijo que indica un número de radice binario.

En su código original, anotó 1b11111 como el valor para el puerto. Si leemos de derecha a izquierda, esto establecería GP0, GP1, GP2, GP3 y GP4 en el valor 1 (pero tenga en cuenta que GP3 no es una salida, como se muestra arriba). No tienes suficientes dígitos para configurar GP5 en 1.

Si configura su puerto de salida en 0b111111 , ahora está configurando GP0 a GP5 (nuevamente leyendo de derecha a izquierda).

    
respondido por el David

Lea otras preguntas en las etiquetas