TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: kronocher en 12 de Enero de 2006, 16:12:00

Título: simulacion PROTEUS CPU LOAD 100%
Publicado por: kronocher en 12 de Enero de 2006, 16:12:00
buenas...
estoy haciendo un programa para un reloj, pero cuando simulo en el proteus por cierto estoy usando el pic 16f84a se vuelve muy lento CPU LOAD 100%, no entiendo porque...
fui depurando el programa y al final probe con algo mas sencillo como el siguiente programa pero igual en la simulacion la cpu se carga al 100% porque????:

inicio
  bsf estado,5
   clrf puerto_b
   clrf puerto_a
  bcf estado,5
bucle
     
  movlw b"001"
  movwf puerto_a

  movlw b"010"
  movwf puerto_a

  goto bucle

P.D.: el programa en si no tiene significado alguno pero lo que me interesa saber es porque en proteus el CPU se carga al 100%
Título: RE: simulacion PROTEUS CPU LOAD 100%
Publicado por: vszener en 13 de Enero de 2006, 07:54:00
¿Te pasa con todos los programas que simulas? ¿que version de PROTEUS tienes y que microprocesador es el de tu PC?

Aqui, otro link donde se habla del mismo tema:
http://miarroba.com/foros/ver.php?foroid=58549&temaid=4571805


Suerte!!!Giño
Título: RE: simulacion PROTEUS CPU LOAD 100%
Publicado por: RaDoN en 13 de Enero de 2006, 14:27:00
Ami me pasa cuando multiplexo displays, pero vamos que no es tan raro...
Título: RE: simulacion PROTEUS CPU LOAD 100%
Publicado por: kronocher en 14 de Enero de 2006, 07:52:00
bueno tengo pentium 1.7 ghz con 480 mb de ram. Al parecer todo depende de los componentes que se utilice en la simulacion. al comienzo utilizaba 6 unidades de display de 7 segmentos con eso la CPU se cargaba hasta el 100% , pero al utilizar el array de display la CPU se carga hasta unos 50%,  bueno nose....
pero todavia no llego a entender porque este programita :
inicio
  bsf estado,5
   clrf puerto_b
   clrf puerto_a
  bcf estado,5
bucle
     
  movlw b"001"
  movwf puerto_a
  movlw b"010"
  movwf puerto_a
 
 goto bucle
 end
lo carga la CPU al 100% y eso solo lo simulo con el pic no mas ...

mi idea es simular un reloj digital en protues pero debido a ese problema no puedo simularlo, algun consejo????

Título: RE: simulacion PROTEUS CPU LOAD 100%
Publicado por: vszener en 14 de Enero de 2006, 08:00:00
Haber, tu programa entra en el bucle y ejecuta continuamente estas lineas de comando:
Codigo:

   movlw b"001"
   movwf puerto_a
   movlw b"010"
   movwf puerto_a


mi pregunta es,¿cuanto tiempo trada el pic en realizar una instruccion? pues depende del reloj colocado y d ela instruccione s atratar, pero es muy muy muy poco....tu cargas el programa en proteus y simulas, el simulador debera realizar el codigo a una velocidad bestial! por eso consume el 100% de la CPU, prueba a ponerle retardos entre sentencias:
Codigo:

   movlw b"001"
   movwf puerto_a
   retardo 10 ms
   movlw b"010"
   movwf puerto_a
   retardo 10 ms


Haber si ahora se carga al 100%........

Suerte!!!Giño
Título: RE: simulacion PROTEUS CPU LOAD 100%
Publicado por: kronocher en 14 de Enero de 2006, 09:32:00
gracias por tu consejo, funciono!!!
me pregunto si en la realidad sera que en caso que en la simulacion tengamos la CPU cargada al 100% afectara al PIC en la realidad, pasa que todavia no lo he probado por que tambien me estoy armando un grabador...
ahh y por cierto, no tendras algun esquema de un grabador para poder trabajar en "in circuit programming" para no estar sacando y probando el progama
gracias..!!
Título: RE: simulacion PROTEUS CPU LOAD 100%
Publicado por: vszener en 14 de Enero de 2006, 09:42:00
Buenas!!!veo que quieres realizar un relog digital y supongo que sera con display"s de 7seg, bien, decirte que tambien en la vida real debes realizar una pausa entre display"s ya que si no la pones no veras nada, simplemente veras 8 jeje es decir todos los led"s encendidos o datos que no correponden, cuando se trabaja con display"s multiplexados la tecnica a emplear es la llamada "barrido de display"s", consiste en ir seleccionando cada display"s para mostrar el dato correspondiente, la pausa entre display y display va en torno a los 10ms - 20ms para que no sea apreciable por el ojo humano, pronto colgare un reloj digital con display"s en el post de ejemplitos en c, pero te aconsejo que te mires el ejemplito numero 18 donde se usa la multiplexacion de 4 display"s de 7seg, aqui el enlace:
http://miarroba.com/foros/ver.php?foroid=46840&temaid=4061462

Con respecto al programador no te puedo ayudar, simplemente te aconsejo que te pases por el subforo de programacion haber si encuentras algo o postealo haber que te responden.

Suerte!!!Giño