Haciendo unas pruebas con el PIC16F1454, encontré problemas al tratar de utilizar RA4 como entrada digital, tras repasar la hoja de datos y varios intentos, conseguí que funcionara: tuve que deshabilitar el bit 4 del registro ANSELA, aunque en teoría esto no debería ser necesario pues este microcontrolador no cuenta con entradas analógicas.
Este es mi código de pruebas (lo probé con XC8 1.21):
/*
* File: TestIO.c
* Author: José Jorge Enríquez
*
* Created on 21 de diciembre de 2013, 03:35 PM
*/
#include
#pragma config FOSC = INTOSC
#pragma config MCLRE = OFF
#pragma config LVP = OFF
#pragma config PLLEN = DISABLED
// For accessing ANSELA register
volatile unsigned char ANSELA @ 0x18C;
int main() {
OSCCONbits.SPLLEN = 0; // PLL disabled
OSCCONbits.IRCF = 0b1101; // 4 MHz internal oscillator
OSCCONbits.SCS = 0b00; // Clock determined by configuration word
TRISCbits.TRISC5 = 0; // Led
TRISAbits.TRISA4 = 1; // Input
ANSELA = 0x00; // Disable analog inputs
// Needed for RA4 to work as digital input
OPTION_REGbits.nWPUEN = 0; // Enable weak pull-ups
WPUAbits.WPUA4 = 1; // Enable pull-up on RA4
while (1) {
LATCbits.LATC5 = PORTAbits.RA4;
}
return 0;
}
La revisión del chip que estoy utilizando es 1005h, la más reciente es 1006h pero creo que tendrá el mismo detalle pues en la errata del chip no se menciona nada de esto.
¿A alguien más le ha ocurrido?
Dejar una contestacion