Autor Tema: Problema de simulación con tiempos proteus  (Leído 3899 veces)

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

Desconectado c4chus

  • PIC10
  • *
  • Mensajes: 8
Problema de simulación con tiempos proteus
« 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);

}
"puedo luchar contra las sombras, pero no contra un eclipse"...

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema de simulación con tiempos proteus
« Respuesta #1 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!
No contesto mensajes privados, las consultas en el foro

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Problema de simulación con tiempos proteus
« Respuesta #2 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
}

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema de simulación con tiempos proteus
« Respuesta #3 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!
No contesto mensajes privados, las consultas en el foro

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Problema de simulación con tiempos proteus
« Respuesta #4 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

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema de simulación con tiempos proteus
« Respuesta #5 en: 10 de Septiembre de 2009, 19:04:47 »
 :shock: Cada día aprendo más  :mrgreen: Esa no la sabia, gracias Pali  ;-)
No contesto mensajes privados, las consultas en el foro

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Problema de simulación con tiempos proteus
« Respuesta #6 en: 10 de Septiembre de 2009, 21:24:12 »
yo tampoco la sabía :shock:

grande pali!
.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Problema de simulación con tiempos proteus
« Respuesta #7 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.



 
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Problema de simulación con tiempos proteus
« Respuesta #8 en: 10 de Septiembre de 2009, 21:40:09 »
que? :shock: :shock:

y como se hace? :mrgreen:
.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema de simulación con tiempos proteus
« Respuesta #9 en: 10 de Septiembre de 2009, 23:25:43 »
Eso, eso cuenta!!  :D Hay que abrir un hilo con tips para proteus  :-/
No contesto mensajes privados, las consultas en el foro

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Problema de simulación con tiempos proteus
« Respuesta #10 en: 10 de Septiembre de 2009, 23:33:46 »
Yo he usado los breakpoints normalitossss ...



Como son los otros?
El papel lo aguanta todo

Desconectado c4chus

  • PIC10
  • *
  • Mensajes: 8
GRACIASSSSSSSS
« Respuesta #11 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:
"puedo luchar contra las sombras, pero no contra un eclipse"...

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema de simulación con tiempos proteus
« Respuesta #12 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!
No contesto mensajes privados, las consultas en el foro