TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Tosbar en 13 de Agosto de 2008, 17:57:47

Título: Desesperado, casi, con el 12F629
Publicado por: Tosbar en 13 de Agosto de 2008, 17:57:47
Comunidad del foro,

Llevo ya algun tiempo aqui en el foro leyendo hilos y he recibido bastante ayuda leyendolos  :), pero esta vez no he podido solucionar mi problema (muy sencillo creo) y es por ello que les pido de su apoyo.

Les comento asi brevemente que he trabajando con el PIC16F628, el CCS y Proteus y hasta ahora no he tenido problemas con estos pero resulta que llevo ya varios dias peleandome con el PIC12F629 y no he podido hacer ni siquiera que prenda un led, el codigo siguiente lo he tomado de un hilo de aqui del foro, que al parecer al colega que lo posteo le funcionó pero ami no  :(:

Código: [Seleccionar]
#include <12F629.h>

#fuses NOWDT,NOPROTECT,NOCPD,NOMCLR,NOPUT,INTRC_IO,NOBROWNOUT
#use delay(clock=4000000)

void main() {

  set_tris_a(0);           //// declaramos el puerto como salidas
  OUTPUT_A(0x00);

   do{           //// bucle infinito
  OUTPUT_A(0x00);
  delay_ms(100);
  OUTPUT_A(0xFF);//// apaga todos los pins del puerto
  delay_ms(100);

     }
   while (true);       
}

Lo compilo en CCS 4.023 y no me marca ni errores ni warnings, voy al Proteus 6.7 SP3 (les pongo las versiones por si es algo referente eso) cargo el programa al pic y NADA  :?, simplemente no muestra signos de vida, por que será? les anexo el archivo de proteus por si alguien me hace el favor de probarlo :lol: y si alguien tiene algun ejemplito asi muy basico que funcione le agradeceria mucho que me lo compartiera para ver en que estoy comentiendo error.

De antemano les agradezco su apoyo y gracias por todo, Saludos.
Título: Re: Desesperado, casi, con el 12F629
Publicado por: navaismo en 13 de Agosto de 2008, 18:07:25
Hola no uso c pero por lo visto usas registros que no le pertenecen a este pic el registro de los pines es TRISIO y para manejarlos es GPIO

Cambia el TRISA a TRISIO=0 y GPIO.0

Saludos
Título: Re: Desesperado, casi, con el 12F629
Publicado por: RedPic en 13 de Agosto de 2008, 18:13:40
Una cosa veo al primer vistazo. Te falta el tipo de oscilador en los fuses. Pónle el XT para el oscilador de 4 Mhz. Prueba y nos cuentas como te resultó.

Código: C#
  1. #fuses XT,NOWDT,NOPROTECT,NOCPD,NOMCLR,NOPUT,INTRC_IO,NOBROWNOUT
Título: Re: Desesperado, casi, con el 12F629
Publicado por: MGLSOFT en 13 de Agosto de 2008, 18:17:22
Compilado con la version 4.074 y sin modificaciones en Proteus, salvo declararle el archivo .hex, funciona de maravillas.
Tienes un parpadeador de 5 leds.... :mrgreen:
Título: Re: Desesperado, casi, con el 12F629
Publicado por: Cryn en 13 de Agosto de 2008, 18:21:55
creo que si esta definido maestro:
#fuses XT,NOWDT,NOPROTECT,NOCPD,NOMCLR,NOPUT,INTRC_IO,NOBROWNOUT

intenta tb colocar en el clock de esta manera:

#use delay(internal=4M)
#use fast_io(a)

para asegurarse tb deshabilita algunas cosas que no vas a utilizar, antes del bucle infinito como:

setup_comparator(NC_NC_NC_NC);

talvez haya que desactivar los timers más por si acaso
Título: Re: Desesperado, casi, con el 12F629
Publicado por: RedPic en 13 de Agosto de 2008, 18:26:57
creo que si esta definido maestro:
#fuses XT,NOWDT,NOPROTECT,NOCPD,NOMCLR,NOPUT,INTRC_IO,NOBROWNOUT

Cierto, Cryn, está utilizando el oscilador interno.
Título: Re: Desesperado, casi, con el 12F629
Publicado por: Tosbar en 14 de Agosto de 2008, 03:31:05
Antes que nada, muchas gracias por sus respuestas, les cuento mis avances:

-Respecto a las GPIO me parece que en C les nombraron PIN_A0 - PIN_A5 asi que por ahí no creo que vaya, gracias navaismo de cualquier modo.
-Como ya mencionaron RedPic y Cryn  estoy utilizando (o tratando de utilizar) el oscilador interno
-Me llamo la atencion lo del amigo MGLSOFT sobre que lo compilo en la version 4.074 asi que me di a la tarea de bajar esa version, me costo un poco conseguirla pero la baje, compile, carge en proteus y NADA  :shock: realmente no se porque no lo hace  :(
Este es el codigo con las observaciones que me recomendaron:
Código: [Seleccionar]
#include <12F629.h>

#fuses NOWDT,NOPROTECT,NOCPD,NOMCLR,NOPUT,INTRC_IO,NOBROWNOUT
     
#use delay(internal=4M)
#use fast_io(a)

void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);

   // TODO: USER CODE!!
   do{           //// bucle infinito
  OUTPUT_A(0x00);
  delay_ms(100);
  OUTPUT_A(0xFF);//// apaga todos los pins del puerto
  delay_ms(100);

     }
   while (true);   
}


Simule el hex con el PIC Simulator IDE paso a paso y solo se ejecutan unas cuantas instrucciones y solo dura la simulacion 8us, eso pasa tanto con los hex compilados con la version que tenia la 4.032 y la "nueva" 4.074, les pongo las imagenes de las pantallas que capture en esa simulacion para ver si tienen alguna idea.

De ante mano gracias y sigo en la lucha  :lol:
Título: Re: Desesperado, casi, con el 12F629
Publicado por: Tosbar en 14 de Agosto de 2008, 03:33:39
Estas son las siguientes capturas...
Título: Re: Desesperado, casi, con el 12F629
Publicado por: Tosbar en 14 de Agosto de 2008, 03:34:36
Y esta la ultima...
Título: Re: Desesperado, casi, con el 12F629
Publicado por: scientist en 14 de Agosto de 2008, 04:00:46
solo unas observaciones, cuando habras el compilador ccs dale antes de iniciar un programa, al close all, ya que muchas veces compila el programa anterior al que hacemos, y por eso pensamos que ya todo esta barbaro, segundo, el simulator ide, es bueno, pero algo lento en comparacion a un simulador en tiempo real, bueno, te dejo el programa ya funcionando, solo hacia falta configurar el registro tris, saludos

Código: [Seleccionar]
#include <12F629.h>

#fuses NOWDT,NOPROTECT,NOCPD,NOMCLR,NOPUT,INTRC_IO,NOBROWNOUT
     
#use delay(internal=4M)
#use fast_io(a)

void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);
   set_tris_a(0x00);
   // TODO: USER CODE!!
   do{           //// bucle infinito
  OUTPUT_A(0x00);
  delay_ms(100);
  OUTPUT_A(0xFF);//// apaga todos los pins del puerto
  delay_ms(100);

     }
   while (true);   
}
Título: Re: Desesperado, casi, con el 12F629
Publicado por: MLO__ en 14 de Agosto de 2008, 11:25:35
Hola.

Simule el primer codigo que posteaste y  :-/ :-/ :-/ todo marcha muy bien. Proteus v7.2SP2 y  CCS 4.073.

Saludos
Título: Re: Desesperado, casi, con el 12F629
Publicado por: Tosbar en 14 de Agosto de 2008, 13:09:20
Coincido que es mejor el simulador en tiempo real solo hice pruebas con el PIC Simulator IDE para ver "lento" como se comportaba el codigo y despues de eso he llegado a la conclusion y estoy casi seguro que algo estoy haciendo mal en la compilación porque ya ustedes pudieron compilar bien y correrlo con la misma version del PCWH. Como les comentaba al principio he compilado para el PIC16F628 y no me habia dado problemas pero quiza estoy omitiendo algo  :lol: asi que aqui pongo los pasos que hago para compilar:

-Abro el PCWH 4.074, cierro los documentos abiertos asi como tambien los proyectos de tal forma que tengo todo cerrado
-Voy a New->Source File y me pide el nombre, le doy "leds"
-Me abre el editor con el archivo que nombre como "leds.c"
-Copio de aca el codigo que me hicieron favor de probar y que esta funcionando, lo pego en el fuente "leds.c".
-Elijo el Menu Compile, y doy click en el icono Compile
-Sale la ventana de compilación donde indica el porcentaje de RAM, ROM ocupado y me indica que no tiene errores ni warnings.
-Segun yo ahi termina el proceso de compilación, se genera el archivo "leds.hex"
-Voy al proteus, elijo al 12F628 con click derecho, luego click izquierdo, le asigno el archivo "leds.hex"
-Doy click al boton de Play para iniciar la animación y NADA...  :(

Hay algo que he omitido para la compilación?  :shock:

Gracias de antemano.
Título: Re: Desesperado, casi, con el 12F629
Publicado por: flacoclau en 14 de Agosto de 2008, 13:40:49
Hola leiste el mensaje del amigo scientist?
Título: Re: Desesperado, casi, con el 12F629
Publicado por: MLO__ en 14 de Agosto de 2008, 14:02:38
Hola.

El codigo estaba bien desde el primer post. Yo lo que hago es compilar desde el IDE del MPLAB .... hay que tener instalado el plugin. Hice un nuevo proyecto con el Proyect Wizard y asigne el .hex ( o el .cof ) al pic y ya ... corrio bien ... los leds titilaban.

Saludos.
Título: Re: Desesperado, casi, con el 12F629
Publicado por: scientist en 14 de Agosto de 2008, 14:08:04
creo que la mejor manera de averiguar si funciona tu programa es hacerlo en protoboard, ya que a lo mejor tengas mal instalado el proteus, el programa esta bien, como muchos amigos del foro ya pudieron comprobarlo, al cerrar los programas, me refiero que tienes que hacerlo desde tu barra de tareas, donde esta el icono de la carpetita, saludos
Título: Re: Desesperado, casi, con el 12F629
Publicado por: Tosbar en 14 de Agosto de 2008, 15:04:17
flacoclau: Si lei el mensaje del compañero scientist y lleve a cabo sus observaciones.

Por otro lado, el proteus yo pienso que esta bien instalado porque puedo simular otros pics e incluso puedo simular el 12F629 pero generando el codigo con el PicBasic Pro, el problema biene a la hora de hacer el programa en C.

Ahora se que el programa esta bien, gracias a ustedes que lo han probado, la cuestion es porque al compilarlo y cargarlo al pic no corre? intentaré la opcion del compañero MLO con el MPLAB pero que no deberia funcioar como les comente que lo he compilado?
Citar
-Abro el PCWH 4.074, cierro los documentos abiertos asi como tambien los proyectos de tal forma que tengo todo cerrado
-Voy a New->Source File y me pide el nombre, le doy "leds"
-Me abre el editor con el archivo que nombre como "leds.c"
-Copio de aca el codigo que me hicieron favor de probar y que esta funcionando, lo pego en el fuente "leds.c".
-Elijo el Menu Compile, y doy click en el icono Compile
-Sale la ventana de compilación donde indica el porcentaje de RAM, ROM ocupado y me indica que no tiene errores ni warnings.
-Segun yo ahi termina el proceso de compilación, se genera el archivo "leds.hex"
-Voy al proteus, elijo al 12F628 con click derecho, luego click izquierdo, le asigno el archivo "leds.hex"
-Doy click al boton de Play para iniciar la animación y NADA...  Sad

Que tonteria y no puedo hecharlo andar..  :(

Gracias.
Título: Re: Desesperado, casi, con el 12F629
Publicado por: Tosbar en 15 de Agosto de 2008, 03:04:27
Bueno compañeros pues les comento que he realizado la prueba que me sugirio el compañero MLO de correr CCS con MPLAB y gratamente veo que el programa esta funcionando :), active en el menu VIEW->SPECIAL FUNCTION REGISTERS y al animar veo que el registro GPIO cambia su valor, modifico el programa y tambien lo hace.

Lo que aun me tiene con duda es que al simular el archivo hex en el Proteus sigue sin hacer nada :( lo simulo tambien en el PIC Simulator IDE y tampoco sucede nada, eso porque será? el MPLAB realmente que simula? el hex? o que archivo?

Si esta funcionando en el MPLAB no deveria tambien funcionar en el Proteus?

Bueno, ya tengo buenos avances por lo menos ahora veo muestras de vida pero sería completamente feliz si pudiera simularlo con el Proteus :mrgreen:, espero sus opiniones, gracias!
Título: Re: Desesperado, casi, con el 12F629
Publicado por: Tosbar en 15 de Agosto de 2008, 04:13:37
Por fin... despues de varios dias como loco y varias noches de desvelo :mrgreen:, eh logrado los dichosos leds pendidos  :mrgreen: je je je je

Resulta que el problema era alguno de los dos, o el CCS 4.023 o el Proteus 6.7 SP3, digo alguno porque cambie los dos, ahora tengo el CCS 4.074 y el Proteus 7.2 SP2 y corre incluso el primer codigo que poste (como ya me habian comentado varios de ustedes), asi que no se si sea un bug porque probe en 3 computadoras y en ninguna pude hecharlo andar con las versiones que les comento, como sea, ahora si puedo comenzar a preocuparme por lo que realmente quiero hacer  :D.

Gracias por la ayuda y espero que una futura consulta resulte mas interesante que prender y apagar leds je je je je  :mrgreen:

A dormir agusto...

PS. No hubo ya necesidad de utilizar el MPLAB.
Título: Re: Desesperado, casi, con el 12F629
Publicado por: MLO__ en 15 de Agosto de 2008, 10:49:50
Hola.

Que bueno que lo hallas solucionado  :-/ :-/ ahora ya sabemos que la version del proteus 6.7 no simula el oscilador interno del pic12 ...

Saludos
Título: Re: Desesperado, casi, con el 12F629
Publicado por: Novato19 en 06 de Abril de 2011, 20:28:33
Y esta la ultima...

HOla
mira soy nuevo en este foro asta con eso jeje :oops: no se donde quede este mensaje pero pues me ando inicializando  en esto de los microcontroladores queria preguntarte como configuro las entradas y salidas del pic 12f629 en el programa simulador ide en basic, se como hacerlo con el 16f84a o el 16f628a pero e visto el datasheet del pic 12f629 y me encuentro que solo  de gp0 a gp5 y e leido que su configuracion es muy diferente  :? disculpa mi ignorancia ojala puedas ayudarme ya que estoy empezando. grazias :)
Título: Re: Desesperado, casi, con el 12F629
Publicado por: MGLSOFT en 07 de Abril de 2011, 00:30:07
Hola Novato19, bienvenido al foro.

Ante todo veo que tienes buenas costumbres de escritura y/o has leído bien las reglas del foro...

Lo único a apuntarte es que has elegido mal donde poner el tema, ya que hay un subforo especifico de Basic, y allí hay por lo menos tres hilos impresionantes de Pic Simulator IDE, con muchísima y muy interesante información.

Deberías darte una vuelta por allí y también pedirle a alguno de los moderadores que cambie este mensaje a ese subforo.