Autor Tema: Problema con simulacion proteus de PIC16F84 en lenguaje C  (Leído 2379 veces)

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

Desconectado miprigueto

  • PIC10
  • *
  • Mensajes: 1
Problema con simulacion proteus de PIC16F84 en lenguaje C
« en: 20 de Diciembre de 2009, 17:54:40 »
Hola buenos dias, soy nuevo en este foro, me disculaparan si coloque el tema en donde no debia.
Bueno ahora si al problemita, lo que sucede es que estaba tratando de ahcer un proyectico pequeño para unos comederos de peces, tengo que hacer que cada 24 horas se me activen unos motores por unos pocos segundo y que el tiempo en que los motores duren en funcionamiento sea variable gracias a dos interruptores (uno de incrementar tiempo y el otro de decrementar tiempo) bueno el codigo ya lo hice y funciona, pero el problema es que cuando lo simulo en proteus le doy "play" y se queda en un punto especifico del codigo (despues del void main) como si tuviera un break alli. Aunque a pesar de esto creo que deberia funcioanr en la vida real, no se.

JAJJAJA no ya no, cerre el proteus y funciono de maravilla..........jejej, igual si algo dejo el codigo por si a alguien le sirve........a y acepto mejoras XD
Para los que quizas les importe, el numero de interrupciones pa las 24 horas no es 1318 si no 1318359....... y en el while final colocar TRUE y los delays para eliminar los rebotes colocarlos de aprox 500ms y la variable "cont" es un entero de 32 osea "int32 cont"


Aqui esta el codigo

Código: [Seleccionar]
#include <16f84a.h>
#device *=16
#fuses XT, NOPROTECT, NOWDT, NOPUT
#use delay(clock=4000000)
#bit RB0=0X06.0
#bit RB1=0X06.1

int16 cont;
#int_RTCC
RTCC_isr(void)
{
cont++;
}

void main()
{                       // AQUI SIEMPRE SE QUEDA
int16 var;
var=3000;
enable_interrupts(GLOBAL);
enable_interrupts(INT_RTCC);
setup_timer_0 ( RTCC_INTERNAL | RTCC_DIV_256);
do{
if(var>500 && var<6000)
{
if(RB0==1)  //incrementa tiempo de los motores en 0.5s
   {
   delay_ms(60);
   var=var+500;
   }
if(RB1==1)
   {
   delay_ms(60);
   var=var-500;
   }
}
if(cont==1318)//se necesitan 1318 interrupciones para contar 24 horas
   {
   cont=0;
    output_a(0x01);
    delay_ms(var);
    output_a(0x00);
   }
   }while(cont<1400);
}

« Última modificación: 20 de Diciembre de 2009, 18:39:32 por miprigueto »

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Problema con simulacion proteus de PIC16F84 en lenguaje C
« Respuesta #1 en: 20 de Diciembre de 2009, 18:51:35 »
En el circuito del proteus no deberias de colocaer el punto de union de los 2 pulsadores a la tension de +5V y lel pin MCL a +5V tambien por medio de una resistencia.

Para colocar los +5v debes ir a la opcon ports y selecionar power.
Tienes colocado una entrada de pulsos como alimenacion de +5V.

Fer.
Todos los días se aprende algo nuevo.

Desconectado adak

  • PIC10
  • *
  • Mensajes: 6
Re: Problema con simulacion proteus de PIC16F84 en lenguaje C
« Respuesta #2 en: 20 de Diciembre de 2009, 23:28:18 »
a mi me pasaba lo mismo, pero con interrupciones rapidas, me decia "CPU  100% Load" o algo asi, probe de todo, conecte todo el pic como si estubiera en mi circuito de verdad...pero no hubo caso..al final como ya termine todo mi circuito lo provaba en el directamente..adios!