Estaba intentando que el puerto IO funcionara con este código:
#include "p24Fxxxx.h" // This header will choose the right device header
#define FCY 16000000UL // Running at 16 MIPS = Fosc/2
#include <PIC24F_plib.h>
#include <libpic30.h>
// Configuration setup
_CONFIG1( FWDTEN_OFF & GWRP_OFF & GCP_OFF & JTAGEN_OFF & ICS_PGx3 )
_CONFIG2( FCKSM_CSDCMD & OSCIOFNC_ON & POSCMOD_HS & FNOSC_FRCPLL & I2C1SEL_PRI & PLL96MHZ_ON & PLLDIV_NODIV & IESO_OFF & IOL1WAY_OFF );
_CONFIG3( SOSCSEL_IO );
int main() {
TRISB = 0;
PORTB = 0;
PORTBbits.RB0 = 1;
PORTBbits.RB4 = 1;
while(1) {
__delay_ms( 200 );
}
}
Así que me separé de la instrucción __delay_ms
, y eché un vistazo a los registros LATB:
(Como se muestra en la foto, solo LATB4
está activado, confirmado con un multímetro)
Además, si comento la línea PORTBbits.RB4 = 1;
, LATB0
está activado (pero no LATB4
)
¿La segunda llamada la sobrescribe de alguna manera? Tal vez, porque PORTB = 0b10001;
solo funciona.
Estoy usando un PIC24FJ64GB002, MPLAB X, C30 y un PICkit 3. Me doy cuenta de que MPLAB X no es 100% estable, pero algo este simple debería funcionar.
Si algún gurú de PIC pudiera apuntarme en la dirección correcta, sería increíble.