no puede asignar a PORTD un valor variable en PIC18F

2

Estoy usando el siguiente código para probar algunos GPIO mientras me meto con la placa de demostración PIC18F45K20. Me di cuenta de que algo era extraño cuando no podía incrementar un valor y verlo reflejado en los LED después de escribirlo en el puerto. ¿Alguna idea de por qué es eso? Estoy usando el compilador C18 con MPLABX IDE v3.05

Utilizando aPICkit3 con este kit de demostración: enlace

#pragma config FOSC = INTIO67   
#pragma config WDTEN = OFF, LVP = OFF   

#define TIMER T0CON

#include "p18f45k20.h"   

void delay();   

void delay() {      
   int counter = 0;   
   for (counter = 0; counter<1000; counter++);    
}   
void main(void) {     

   unsigned char d = 0;   

   TRISD = 0; // all bits of portd are set 0 as output      
   PORTD = 0; // deactivate all led's   

   while (1) {    

       d++;

       PORTD = d;

       delay();        

   }       
}   
    
pregunta Sensors

1 respuesta

1

En los PIC, lees desde PORT y escribes a LAT. Reemplace PORTD con LATD. Tampoco es una mala idea declarar counter como volatile int counter = 0; . No olvides {} después de for(counter = 0; counter<1000; counter++) .

    
respondido por el Matt Young

Lea otras preguntas en las etiquetas