Autor Tema: Como manejar varios loops cerrados?  (Leído 2130 veces)

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

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
Como manejar varios loops cerrados?
« en: 29 de Abril de 2004, 19:01:00 »
Hola.
Como se debe proceder cuando tengo por ej 1 ad de un 877 con loop y quisiera contar pulsos con count por otro pin todos llevan loops cerrados es decir para atender al ad y para atender el conteo ,si hago un loop o goto inicio se perdera un tiempo que los ad y los contadores de pulsos no tendran .Como se resuelve esto por favor

GRACIAS
khasitos

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: Como manejar varios loops cerrados?
« Respuesta #1 en: 29 de Abril de 2004, 19:37:00 »
Si el micro es muy rapido respecto a lo que quieres contar le dara tiempo en un solo bucle a hacer las dos cosas, sino tendras que hacer uno con interrupcione y el otro en el bucle.  o tambien los dos con interrupcion que luego tendras que gestionar. Lo importante es el periodo de las se~ales con respecto a la velocidad del reloj.

Imagina que tu micro tarda 200 nanosegundos por instruccion y  que tus se~ales son tan grandes como 1 segundo. Pues te da muchisimo tiempo en hacer eso y mas. Si tus se~ales son de alta frecuencia comparadas con la se~al de reloj lo tienes mas chungo (perdon, dificil) de gestionar.

Saludos
Ricky
Madrid-Espa~a

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: Como manejar varios loops cerrados?
« Respuesta #2 en: 30 de Abril de 2004, 11:41:00 »
Hola
Gracias por tu respuesta el problema que veo que los ad sensando temperatura no habria problema que los interroge luego de algunas instrucciones pues me daran el valor que en ese momento el conversor tenga ,pero en el caso de contar RPM ,pueden llegar a ser mas de 200 c/s y ahi si me puedo perder algunos pulsos de entrada .No olvides que estoy programando en PLUS y en realidad no se en cuantas instrucciones se desglosa una orden COUNT como para calcularle el tiempo perdido,
Gracias
saludos
khasistos

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
RE: Como manejar varios loops cerrados?
« Respuesta #3 en: 01 de Mayo de 2004, 14:20:00 »
Si configuras el TIMER1 "como External clock from pin RC0" ya tienes una cosa solucionada , puedes leerlo en cualquier momento , incluso genera una interrupcion cuando se desborda .

En el proyecto de osciloscopio un 18f452 lee el AD a razon de unas 500.000 muestras por segundo  , muestra por pantalla y calcula la frecuencia  que entra por RC0 x segundo .
y le sobra tiempo para mandar los datos por rs232 y fumarse un cigarrito mientras .

Ahora en serio , el pic dispone de estos timers , hay que aprovecharlo y usarlos si se adaptan a lo que queremos .


Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: Como manejar varios loops cerrados?
« Respuesta #4 en: 01 de Mayo de 2004, 14:51:00 »
HOla
Gracias por el dato pensaba usar la orden variable =count,pin time
del PLUS puesto que este comando permite DETENERSE ahi hasta el tiempo especificado y luego si ir a los ad y tomarles el valor ,en fin no es tiempo real pero funcionaria ,seria como multiplexar entradas para leer sus datos ,con lo del timer 1 me lo pongo a estudiar tambien
Gracias
Un gran saludo
khasistos