Autor Tema: Problema XC8 y PIC18F2550 en MplabXC v3  (Leído 1606 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mariano_pic

  • PIC18
  • ****
  • Mensajes: 499
    • Software Electronica Microncontroladores
Problema XC8 y PIC18F2550 en MplabXC v3
« en: 13 de Junio de 2015, 14:35:46 »
El codigo donde se manifiesta el error es muy sencillo, de ahi lo raro:

  
Código: [Seleccionar]
#define _pic18f2550// he probado con esto y sin esto, da igual
#include <xc.h>
#pragma config FOSC = XT_XT,  PWRT=ON, WDT=OFF, PWRT = ON, BOR = ON, WDT = OFF, LVP = OFF
#define _XTAL_FREQ  4000000



void OutPutBits(const unsigned short dat ){  
    if(dat == 0x80){PORTBbits.RB4=1;}else{PORTBbits.RB4=0;}
    if(dat == 0x50){PORTBbits.RB5=1;}else{PORTBbits.RB5=0;}    
}


void main(void){
TRISBbits.TRISB4=0; TRISBbits.TRISB5=0;
PORTBbits.RB4=0; PORTBbits.RB5=0;
OutPutBits(0x80);

while(1);
    
}

Resultado:
PORTB pin B4 bajo
PORTB pin B5 bajo

Deberia de dar:
PORTB pin B4 alto
PORTB pin B5 bajo

si invierto el orden de la funcion:
Código: [Seleccionar]
void OutPutBits(const unsigned short dat ){  
    if(dat == 0x80){PORTBbits.RB4=1;}else{PORTBbits.RB4=0;}
    if(dat == 0x50){PORTBbits.RB5=1;}else{PORTBbits.RB5=0;}    
}
por
Código: [Seleccionar]
void OutPutBits(const unsigned short dat ){    
    if(dat == 0x50){PORTBbits.RB5=1;}else{PORTBbits.RB5=0;}  
    if(dat == 0x80){PORTBbits.RB4=1;}else{PORTBbits.RB4=0;}  
}
entonces el resultado es correcto

El problema es que si necesito redefinir los puertos sin tocar la funcion usando etiquetas, puede presentarse el error.

  sera que estoy haciendo algo mal?


« Última modificación: 13 de Junio de 2015, 18:11:39 por mariano_pic »

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Bug XC8 y PIC18F2550 en MplabXC v3
« Respuesta #1 en: 13 de Junio de 2015, 14:48:26 »
En esos pic, para usar como salidas se usan los registros LAT.. (pe. LATBbits.LATB4), y para leer como entradas se usan los registros PORT.... (pe. PORTBbits.RB4)
Por ahí puede venir el problema.
Saludos

Desconectado mariano_pic

  • PIC18
  • ****
  • Mensajes: 499
    • Software Electronica Microncontroladores
Re: Bug XC8 y PIC18F2550 en MplabXC v3
« Respuesta #2 en: 13 de Junio de 2015, 14:56:03 »


   ok, he probado a cambiar por latb y parece que funciona gracias.