TODOPIC

Simuladores, editores de PCB, etc => Simuladores de circuitos => Proteus ISIS => Mensaje iniciado por: c4chus en 10 de Septiembre de 2009, 14:06:27

Título: Problema de simulación con tiempos proteus
Publicado por: c4chus en 10 de Septiembre de 2009, 14:06:27
HOla a todoss!!! saludos desde México!!! :mrgreen:

  Pues les comento, y espero me puedan ayudar!!! :O estoy generando un programa simple de generación de un pulso alto y uno bajo cada 4 us, según yo está bien programado!!!(en ccs), pero a la hora de simularlo en proteus 7.2 sp2 :S no veo los 4 us en el osciloscopio :O!!!...

  Mi pregunta es :s el problema es el simulador???... proteus no puede simular us's ??

aki les dejo el código para ver si no soy yo el problema :S jajaja de antemano muchas gracias!!!! :-/

#include <16f877a.h>
#fuses HS, NOWDT, PUT, NOPROTECT, NOLVP
#use delay(clock = 4000000)
#BYTE portb = 6
#bit rb0 = 6.0
#bit rb1 = 6.1
#use fast_io(b)


#int_rtcc

   void isr_timer() {
   
      output_toggle(pin_b0);
     
   }
   
void main () {

   set_tris_b(0);

   enable_interrupts(int_rtcc);
   enable_interrupts(global);
   set_rtcc(252);  //                                         timer0 overflow =  4 * 4/4000000 = 4us por lo tanto valor en timer = 256 - 4 = 252
   setup_timer_0(rtcc_internal|rtcc_div_8);
   while(1);

}
Título: Re: Problema de simulación con tiempos proteus
Publicado por: Suky en 10 de Septiembre de 2009, 14:55:37
Lo que pasa es que no estas teniendo en cuenta tooodas las instrucciones que realiza CCS para salvaguardar los registros al ocurrir la interrupción  ;-)



Saludos!
Título: Re: Problema de simulación con tiempos proteus
Publicado por: migsantiago en 10 de Septiembre de 2009, 15:39:16
Y además de lo que comenta Suky...

- Cada instrucción toma 1us al PIC y tú quieres hacer un toggle cada 4us... el pic simplemente no puede hacer tanto en tan poco tiempo.
- Y aún cuando el pic pudiera ser rápido... cuando entras a la subrutina de atención a interrupción no recargas el valor de tmr0 con 252.

Debes correr a más MHz el pic para poder controlar todo en tiempo y forma.

Para 4us lo mejor es no usar interrupciones y hacerlo en el while(1).

Código: [Seleccionar]
while(1) //2us en el goto en ASM
{
output_low(pin_b0); //1us
delay_cicles(3); //3us
output_high(pin_b0); //1us
delay_cicles(1); //1us
}
Título: Re: Problema de simulación con tiempos proteus
Publicado por: Suky en 10 de Septiembre de 2009, 15:47:10
Por ejemplo la única manera de lograr un toggle cada 4us exactos con oscilador de 4MHz:


Código: C
  1. #use fast_io(b)


Código: C
  1. while(1){
  2.       output_high(PIN_B0);
  3.       delay_cycles(3);
  4.       output_low(PIN_B0);
  5.       delay_cycles(1);
  6.    }


Saludos!
Título: Re: Problema de simulación con tiempos proteus
Publicado por: PalitroqueZ en 10 de Septiembre de 2009, 18:10:51
si quieres saber que es lo que te hace consumir tiempo, corre el programa (desde el ISIS) linea por linea y CTRL+D para ver el asm de cada linea en C

Título: Re: Problema de simulación con tiempos proteus
Publicado por: Suky en 10 de Septiembre de 2009, 19:04:47
 :shock: Cada día aprendo más  :mrgreen: Esa no la sabia, gracias Pali  ;-)
Título: Re: Problema de simulación con tiempos proteus
Publicado por: Cryn en 10 de Septiembre de 2009, 21:24:12
yo tampoco la sabía :shock:

grande pali!
Título: Re: Problema de simulación con tiempos proteus
Publicado por: PalitroqueZ en 10 de Septiembre de 2009, 21:34:14
de nada amigos, jeje yo siempre sigo aprendiendo con el proteus, lo último que descubrí son los breakpoints por rangos condicionales, eso ahorra mucho tiempo de trabajo.



 
Título: Re: Problema de simulación con tiempos proteus
Publicado por: Cryn en 10 de Septiembre de 2009, 21:40:09
que? :shock: :shock:

y como se hace? :mrgreen:
Título: Re: Problema de simulación con tiempos proteus
Publicado por: Suky en 10 de Septiembre de 2009, 23:25:43
Eso, eso cuenta!!  :D Hay que abrir un hilo con tips para proteus  :-/
Título: Re: Problema de simulación con tiempos proteus
Publicado por: MLO__ en 10 de Septiembre de 2009, 23:33:46
Yo he usado los breakpoints normalitossss ...

(http://img34.imageshack.us/img34/8128/breakpoint.png)

Como son los otros?
Título: GRACIASSSSSSSS
Publicado por: c4chus en 11 de Septiembre de 2009, 02:18:42
hey muchas gracias a todossss :)!!!! aumentaré el reloj y probaré de nuevo :)!!!!... ufff muy buenos tipsss :D :mrgreen:
Título: Re: Problema de simulación con tiempos proteus
Publicado por: Suky en 11 de Septiembre de 2009, 09:23:00
No solo hay que aumentar el reloj !!! Hay que tener otras cosas en cuenta ya mencionadas anteriormente.


Saludos!