Autor Tema: "Experto" con 16F84 y novato con 16F88. ¿Pq no va este "hello world"?  (Leído 3307 veces)

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

Desconectado JonGoten

  • PIC10
  • *
  • Mensajes: 21
Buenas, soy nuevo en este foro. Lo he estado ojeando varios dias y parece excelente...
Bien, a lo que voy. Llevo varios años programando PIC 16F84, tanto en ASM como en CCS y bueno, acabo de dar el salto al PIC 16F88. El caso es que aunque se que es compatible con el 84, un simple programa no me anda. No sé si es porque programo mal el 88 o porque al programa le falta o le sobra algo.

Como hardware, tengo conectado al pin 7 (RB1) un pulsador y al 17 (RA0) un led. Utilizo un cristal de cuarzo de 4Mhz. (El hardware está bien porque en el 84 me funciona correctamente)

A ver si alguien me echa una mano.

#include <16f88.h>

#BYTE    PA = 0x05
#BYTE    PB = 0x06

#BIT   luz0 = PA.0

#BIT  pulsador1 = PB.1

void main (void);
void inicializar (void);

void main (void)
{
   inicializar();
   While (1)
   {
      if (pulsador1)
      {
         luz0=1;
      }
      else
      {
         luz0=0;
      }
   }
}

void inicializar (void)
{
   set_tris_a(0x00);   // Salidas
   set_tris_b(0xff);   // Entradas
   setup_counters(RTCC_INTERNAL,RTCC_DIV_4);
   set_rtcc(-25);
   luz0=0;
}

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: "Experto" con 16F84 y novato con 16F88. ¿Pq no va este "hello world"?
« Respuesta #1 en: 20 de Diciembre de 2004, 03:34:00 »
El programa funciona bien, debe ser alguna conexion.

En el set_rtcc ¿porque pones un numero negativo?

Si no vas a usar temporizaciones quita el setup_counters y el set_rtcc, no sirven para nada.

¿No estaras conectando la entrada al PORTB0 en lugar de al PORTB1?

Desconectado JonGoten

  • PIC10
  • *
  • Mensajes: 21
RE: "Experto" con 16F84 y novato con 16F88. ¿Pq no va este "hello world"?
« Respuesta #2 en: 20 de Diciembre de 2004, 03:50:00 »
La entrada la estoy conectando al RB1, eso seguro.

Pongo número negativo porque es lo mismo poner set_rtcc(-25) que set_rtcc(255-25) y para mi es más visual (y lo de poner los temporizadores... bueno, más bien se me ha olvidado quitarlos Sonrisa Gigante)

Supongo que será el grabador que utilizo (software). Para los 16f84 utilizaba el ICPROG, pero resulta que no es compatible con el 16f88. Seguiré haciendo pruebas a ver. Utilizaré el WinPic800.

También puede ser la configuración del 16f88, que tiene bastantes cosas mas que el 84.

Gracias, por asegurarme que el código está bien (cómo lo has hecho? simplemente repasando o lo has probado fisicamente?). Miraré qué otras cosas pueden ser.

EDIT: Por cierto, por qué pin sale el PWM en el 16f88? (veo que hay 2 pines con el mismo nombre)

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: "Experto" con 16F84 y novato con 16F88. ¿Pq no va este "hello world"?
« Respuesta #3 en: 20 de Diciembre de 2004, 06:55:00 »
Lo he simulado y funciona bien.

El 16F84 no tiene módulos de PWM (Módulos de Captura/Comparación/PWM) ¿A qué te refieres? Seguramente será el 88

El F88 no lo he usado según veo tiene 1 módulo de C/C/PWM con lo cual puedes generar una salida de PWM por uno de los pines B0,B2,B3 (según información CCS).

Un saludo

Desconectado JonGoten

  • PIC10
  • *
  • Mensajes: 21
RE: "Experto" con 16F84 y novato con 16F88. ¿Pq no va este "hello world"?
« Respuesta #4 en: 20 de Diciembre de 2004, 08:33:00 »
Ups, me he colado en lo del pwm, queria decir el 16f88. Ya lo he cambiado.

Gracias pocher, por cierto, con qué programa has simulado el código?

Desconectado oshow

  • PIC18
  • ****
  • Mensajes: 321
RE: "Experto" con 16F84 y novato con 16F88. ¿Pq no va este "hello world"?
« Respuesta #5 en: 20 de Diciembre de 2004, 09:21:00 »
Supongo que Pocher habrá usado el Proteus, encontrarás más información en el hilo de simuladores del foro.

Como tienes puestos los fuses??, quizas venga por ahi el problema...en el programa que has puesto no los tienes o se te ha olvidado ponerlos.

Un saludo.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: "Experto" con 16F84 y novato con 16F88. ¿Pq no va este "hello world"?
« Respuesta #6 en: 20 de Diciembre de 2004, 09:52:00 »
Sí lo comprobé con PROTEUS.

Oshow tiene razón ¿qué configuración de fuses has puesto en el programa grabador? Es mejor incluir en el programa la directiva #fuses ... y de un programa a otro lo único que tendrás que hacer es copiar y pegar esta línea añadiendo o quitando "fuses".

Desconectado JonGoten

  • PIC10
  • *
  • Mensajes: 21
RE: "Experto" con 16F84 y novato con 16F88. ¿Pq no va este "hello world"?
« Respuesta #7 en: 20 de Diciembre de 2004, 10:44:00 »
Vaya, con PROTEUS se puede simular el *.hex? Yo sólo he visto la opción de hacerlo con *.asm...

EDIT: Reviso los fuses y os comento. Gracias.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: "Experto" con 16F84 y novato con 16F88. ¿Pq no va este "hello world"?
« Respuesta #8 en: 20 de Diciembre de 2004, 12:06:00 »
Claro que simula el HEX. De hecho, sólo simula el HEX.
Tanto es así, que cuando le pones un ASM le tienes que indicar la ruta del compilador para que él pueda convertirlo a HEX y así poder simularlo.

Desconectado JonGoten

  • PIC10
  • *
  • Mensajes: 21
RE: "Experto" con 16F84 y novato con 16F88. ¿Pq no va este "hello world"?
« Respuesta #9 en: 20 de Diciembre de 2004, 14:04:00 »
Bueno, ya he arreglado el asunto. Eran los fuses.

También he conseguido hacer funcionar el PWM.

Gracias a todos.