Problemas con programa en PIC C de CCS

#1
Hola :

Saben que tengo un problema con este código ya que funciona de ves en cuando! La placa funciona ala perfección y tampoco es problemas de comunicación entre los dispositivos! Les cuento que estoy controlando unos relés por sms con un pic16f88 y un modulo wavecom!

http://www.puntoflotante.net/PICCITO-SMS-V-1.c ...
 
#2
Por lo que dices, seguramente es el ruido que producen los reles ,estaria bien que subas el diagrama tal y como lo tienes armado.
 
#3
Estimado: subiré el diagrama pero no creo q sea ruide de relé ya que tiene su diodo conectado para evitar dicho problema! Y no se reinicia el pic! Ademas el circuito generalmente funciona bien durante una hora aprox. Luego ya no recibe mas mensajes...
 
#4
no creo q sea ruide de relé ya que tiene su diodo conectado para evitar dicho problema!
Pues precisamente ese es el problema entonces, el diodo no sirve para eso.. el diodo sirve para que no se dañe el transistor o lo que tenga por los efectos inductivos.

se pone un capacitor para amortiguar los ruidos, pero si quieres seguimos adivinando XD
 
#7
Gracias realizare los cambios y te comento!



Estimado una consulta! Miraste el programa? Por si es que hay un error! Yo no encuentro ninguno hasta el momento!
 
Última edición:
#10
Estimado:

eh realizados los cambios que me haz aconsejados, y aun no funciona correctamente el programa!!!
conecto el pic a hiperterminal y correctamente se envían los comandos at para configuración, lectura y borrado de los sms.... y conecto el moden, también por hiperterminal y acepta todos los comandos de configuración y lectura de sms... pero ya no funciona el sistema!

:confused:



eh realizado miles de cambio al programa modificando la sintaxis y algunos comandos pero sigo sin que funcione adecuadamente.... y ya casi no funciona!!! sigo insistiendo que el problema es el programa!!
me pueden ayudar????
 
Última edición:
#11
¿Qué palabra de configuración estás usado?
El código que mencionas no la tiene y se usará una por defecto que no puede ser la requerida.

Palabra de configuración por defecto (PIC16F88, PIC C Compiler)
Fuses PIC C PIC16F88.jpg
 
Última edición:
#13
Estos son los fuses que configuro al cargar el pic....
OK. Entonces sí estás configurando los fuses fuera del código del programa.
Si ese programa está probado que funciona, entonces verifica que la fuente de poder tenga la suficiente corriente, que sea estable en 5V. y libre de ruido.
Sin embargo, como se envían tramas a 9600bps, con 4MHz, es mejor que uses un cristal de 8MHz, y cambies el fuse por HS_OSC.
También deshabilita los fuses IESO y FCMEN.
Éstos fuses en tu programador tienen el nombre de; Switch Over Mode y Fail Safe, respectivamente.

Como comentario:
El fuse BODEN provoca un reset cuando hay un bajo voltaje de alimentación.
 
#14
gracias. realizare los cambios y les comento.



eh medido la corriente del circuito y el modulo consume 300 mA y la placa donde esta el pic consume 150 mA y la fuente es de 12 VDC y con una corriente máxima de 1 A. y el tema de los fuses los e configurado según tu mensaje y nada aun.....
 
Última edición:
#15
Realmente no sé qué pueda estar pasando pues el montaje lo estás realizando tú.
Pero mira, estás son una imágenes de las tramas que manda el PIC físicamente.
Primer envío al iniciar: Primer envío.jpg
Segundo envío pasados unos segundos: Segundo envío.jpg

El PIC lo conecté de forma simple con un transistor NPN y de ahí al puerto serial COM1
Los cuadritos que se ven en las tramas son los retornos de carro ("\r")

El envío de datos se ve sin errores, pero nunca he trabajado con este sistema.
Te recomiendo que mires bien toda la información del autor y la configuración de tu módulo.
 
Última edición:
#17
Ultimamente he tenido problemas con ccs en windows 10, todo el codigo que escribo para los pics 18F no me funciona como quisiera; en especial la comunicacion uart. He utilizado el ccs V4 y la V5, me regrese a otra compilacion de la V4 y nada. El programa va mas lento de lo que parece y si se establece la comunicacion uart pero me lanza pura basura.

Los problemas surgieron cuando el compilador me lanzo un mensaje de error diciendo que la libreria 18F2550.h no se encontraba. Desinstale e instale una version ccs que descargue por ahi, ya no aparecieron errores de compilacion, pero lo pruebo en el pic y me aparece el problema que ya les comente.

Ya probe con varios PICS que tengo y me sucede el mismo problema, lo pruebo en simulador proteus y todo bien. ¿alguien tiene una idea de lo que pudiera ser? Gracias de antemano.

CSS:
#include <18f4550.h>

//#fuses INTRC_IO, NOWDT, PUT ,BROWNOUT, NOLVP
#fuses XT,NOWDT,BROWNOUT, NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,bits=8, parity=N)

#define led5   pin_b7

void test_uart(void);

int main()
   {  
   while(true)
      {
      test_uart();
      }
  
return 0;
   }//fin de main



void test_uart(void)
{
int cont;

for(cont=0;cont<25;cont++)
   {
   output_high(led5);
   delay_ms(500);
   output_low(led5);
   delay_ms(500);
   printf("conectando %d",cont);
   printf("\r\n");
   }
}
 
#18
Como siempre les sucede con este tipo de PIC, son los fuses los que están incorrectos.
Una de las ventajas del compilador PIC C de CCS es que los fuses se pueden definir de una manera muy sencilla.
En el caso de tu programa que requieres que se use un cristal de 4 MHz, tan solo bastaría con declarar lo siguiente:
#use delay (crystal = 4 MHz)
Con tan solo esa declaración el compilador establecerá los fuses correctos.
Y si queremos mejorar un poco el desempeño del microcontrolador, nada más se agregaría lo siguiente:
#fuses NOFCMEN

Tan tan.
 
#19
Esa es la gran diferencia y error de muchos un simulador es eso solo "simula" en otras palabras es como si fuera sin serlo
Proteus hace solo eso parecerse a la realidad, pero parecer no es igual.
No estan diseñados para decirte que te olvidaste, el echo que funcione en el simulador no asegura para nada que lo haga en la realidad, no hay que perder de vista el tema de los fuses, la mayoría se olvida como en proteus funciona sigue y sigue y cuando graba obvio se olvida de lo importante y luego no funciona.
Hacerse un diagrama de flujo de base para luego repasar si hemos puesto todo lo necesario ayuda mucho incluso en la misma programación cuando es largo o muy entramado
 
#20
Así es, el simulador no toma en cuenta los fuses aunque se puedan establecer.
Le pones una frecuencia de reloj al microcontrolador y a esa velocidad hará su trabajo.
En la vida real las cosas deben estar bien hechas o no funcionan.
Pero para que esto no pase, los fabricantes siempre nos proporcionan una documentación que casi a nadie le importa.
Muchas personas se ponen a copiar y a pegar lo que por otros lados ven, sin tomar en cuenta que cada programa tiene una configuración diferente por motivos propios del sistema.
Dicha documentación se llama "Hoja de Datos" (Datasheet)
Es la biblia de cada dispositivo.
 

Arriba