Autor Tema: Problema con simulación de puertos en MPLAB (solucionado)  (Leído 3840 veces)

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

Desconectado Doohan

  • PIC10
  • *
  • Mensajes: 4
Problema con simulación de puertos en MPLAB (solucionado)
« en: 04 de Mayo de 2011, 07:32:50 »
Hola a todos.

Estoy empezando a programar dsPics e intentándolo simular con la herramienta MPLAB SIM.
Hace tiempo estuve programando PICS en ASM y no tuve ningún problema, pero ahora al hacerlo en C el simulador no me simula los puertos por algo que debo hacer mal.

Para que entendais el problema he hecho un programa muy básico siguiendo este tutorial para ver si vosotros apreciais qué hago mal:


Si os fijais el puerto A no cambia cuando le asigno el valor del contador.
A partir del segundo 49 sí que cambia pero es porque le doy a "Run" y lo vuelvo a parar con "Halt", pero no toma el mismo valor que el contador

He probado con el puerto B y tampoco. También he buscado por el foro temas parecidos y no he encontrado nada.

Por si no lo apreciais en el vídeo el programa es el siguiente:
Citar
#include "p30f6014.h"

int counter;

int main (void)
{
   counter = 1;
   TRISA = 0;
   PORTA = 0;

   while(1) // do forever
   {
      PORTA = counter;
      counter++;
   }
   return 0;
}

Espero que alguien pueda ayudarme.

Un saludo y gracias de antemano
« Última modificación: 04 de Mayo de 2011, 15:17:26 por Doohan »

Desconectado Doohan

  • PIC10
  • *
  • Mensajes: 4
Re: Problema con simulación de puertos en MPLAB (vídeo explicativo)
« Respuesta #1 en: 04 de Mayo de 2011, 10:53:39 »
Sigo aquí dándole al tema y he descubierto que ese mismo código usando el puerto F funciona perfectamente, asique deduzco que es cuestión de la configuración de los puertos A y B

Citar
#include <p30f6011A.h>

//_CONFIG1( JTAGEN_OFF && GCP_OFF & GWRP_OFF & BKBUG_OFF & COE_OFF &ICS_PGx2
//& FWDTEN_OFF & WINDIS_OFF & FWPSA_PR128 & WDTPS_PS32768);
//_CONFIG2( FNOSC_PRI & FCKSM_CSDCMD & POSCMOD_HS);

#define FCY 10000000UL

int counter = 0;

main(int argc, char * argv[]){
   
   TRISF=0x0000;

   PORTF=0;

   while(1){
      PORTF = counter;
      counter++;
   }
}

He cambiado el Pic y he usado el dsPIC30F6011 que es el que usaré en la realidad.
Ahora me surge una duda: ¿que pic sería el eqivalente a este en la serie 33F? Lo pregunto para poder simularlo en proteus

Un saludo!

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Problema con simulación de puertos en MPLAB (vídeo explicativo)
« Respuesta #2 en: 04 de Mayo de 2011, 11:48:39 »
No tengo a mano, el data sheet del pic con que trabajás.
Para no perder tiempo, te respondo mientras lo descargo.

¿Te aseguraste que en el puerto A no hay entradas analógicas? Si tiene, tienes que configurar los pines como digitales.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Doohan

  • PIC10
  • *
  • Mensajes: 4
Re: Problema con simulación de puertos en MPLAB (vídeo explicativo)
« Respuesta #3 en: 04 de Mayo de 2011, 14:28:34 »
No tengo a mano, el data sheet del pic con que trabajás.
Para no perder tiempo, te respondo mientras lo descargo.

¿Te aseguraste que en el puerto A no hay entradas analógicas? Si tiene, tienes que configurar los pines como digitales.

Gracias por la respuesta León Pic. Creo que por ahí van los tiros porque justamente son unos pines los que no cambian su valor

En cuanto encuentre la solución lo pondré por aquí junto con el código. Seguro que a más de uno le sirve.

Un saludo

Desconectado Doohan

  • PIC10
  • *
  • Mensajes: 4
Re: Problema con simulación de puertos en MPLAB (vídeo explicativo)
« Respuesta #4 en: 04 de Mayo de 2011, 15:16:59 »
Efectivamente el problema venía por la configuración de los pins. Bueno más bien el problema era que YO diese por supuesto que la configuración por defecto era en modo digital

Por si alguien le sirve aquí dejo el código:

Citar
#include <p30f6011A.h>


int counter = 0;

int main(){

   ADPCFG = 0xFFFF; //Configura los pines analogicos como digitales
   TRISB = 0x0000;

   PORTB = 0;

   while(1)
   {
      PORTB = counter;
      counter++;
   }
   return 0;
}

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Problema con simulación de puertos en MPLAB (solucionado)
« Respuesta #5 en: 05 de Mayo de 2011, 15:06:00 »
Excelente :-/ :-/
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado vicpoweriz

  • PIC10
  • *
  • Mensajes: 4
Re: Problema con simulación de puertos en MPLAB (solucionado)
« Respuesta #6 en: 22 de Mayo de 2011, 14:24:08 »
Gracias por el post, y por completar el hilo de tus investigaciones cuando has dado con la solución. Justamente probé en el simulador el mismo código y noté que no se cargaba bien el valor del contador al puerto. No le di importancia pero agradezco saber porqué pasaba.
Un saludo


 

anything