Autor Tema: INTERRUPCIONES REALES EN PLUS  (Leído 9868 veces)

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

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: INTERRUPCIONES REALES EN PLUS
« Respuesta #45 en: 14 de Octubre de 2004, 18:23:00 »
Sigue el error pana, jajaja ,hasta mayor al que dejamos en i de diferencia. Hay que seguir analizando
Me marca 9942-43 en 10ks, esta muy fuera del otro rango usando el bit
Un abrazo

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: INTERRUPCIONES REALES EN PLUS
« Respuesta #46 en: 14 de Octubre de 2004, 19:30:00 »
HOLA PANA

NO NO el ultimo post esta perfecto .PERFECTO coincide en todos los rangos en este preciso momento el generador marca 50.092HZ el frecuencimetro 50.093 y el pic 50.092 o cambia esporadicamente a 3 TE LO ASEGURO.El Xtal esta chekeado esta en 20. 000.002 hz .Algo en la simulacion no camina ES el mejor de todos.
Estas simulando en proteus NO? A mi todo lo que simule siempre me dio mas lento ,a pesar que funcionaba los tiempos no son los mismos.Puede venir por ahi ...
 
Te mando un abrazo
Khasistos
Abrazos PANA
Khasistos

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: INTERRUPCIONES REALES EN PLUS
« Respuesta #47 en: 15 de Octubre de 2004, 10:46:00 »
Ok pana, entonces ese es el bueno .a mi me sigue funcionando mejor el otro, lo probe ayer en la facultad, me da 50.002  a 50.001 para 50.002 quien sabe por que.Como ves es lo mismo(la misma diferencia del tuyo de 1 hz, el mismo error de siempre), pero sin reescribir el TMR y con la ganancia de que el que uso tambien me da en proteus pero 1hz de dif. En fin usa el que te sirva Pana
Un  abrazo pana

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
RE: INTERRUPCIONES REALES EN PLUS
« Respuesta #48 en: 15 de Octubre de 2004, 13:13:00 »
Tener +- un ciclo de diferencia es normal , depende de la sincronización y si cuando empieza la cuenta está el ciclo a leer a nivel alto ó bajo .

la mas dificil es que funcione usando " ON_INTERRUPT INTERRUPCION "

ya que la atenderá cuando termine lo que está haciendo , si esta en un PAUSE 2000 , tardara dos segundos en atenderla , bruff .



Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: INTERRUPCIONES REALES EN PLUS
« Respuesta #49 en: 15 de Octubre de 2004, 13:22:00 »
Gracias Sispic , entonces lo puedo dejar asi? o hay alguna forma de contra restar ese +-1?
No estamos usando pause ni delays, solo interrupcion hardware de proton , pero si hay una forma de obtener la exactidud, me gustaria mucho aprenderla , ya que con el que puse tengo ese error.
SAlu2 pana

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: INTERRUPCIONES REALES EN PLUS
« Respuesta #50 en: 15 de Octubre de 2004, 15:02:00 »
HOLA sisco

la interrupciones del PLUS son de HARDWARE no son de soft ,las que tu haces referencia se llaman  on  interrupt y si hacen lo que tu dices Hay dos clases ON_INTERRUPT  y ON INTERRUPT (este es por soft) sin guion bajo.
Lo que has visto en estas paginas son por hard
Muy buena apreciacion la de si esta entrando un pulso  cuando se larga el conteo....ahi tenemos la dif de +-1cs

Y gracias por brindarnos siempre tus consejos....

Te mando un abrazo
Khasistos

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
RE: INTERRUPCIONES REALES EN PLUS
« Respuesta #51 en: 16 de Octubre de 2004, 00:47:00 »
Ok khasistos . entonces no es igual que pbp 2.4xx , y como no utilizo el plus pensé que seria lo mismo .

por cierto , saveis si el plus se encarga automaticamente de guardar los registros al entrar en la interrupción ?

un saludo

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: INTERRUPCIONES REALES EN PLUS
« Respuesta #52 en: 16 de Octubre de 2004, 07:54:00 »
HOLA SISCO

Mira los principales si los guarda con la orden context restore,pero a su vez si usas alguna otra variable importante que quieres conservar se hace de la siguiente manera ,con el editor del PLUS una vez compilado tocas F2 ahi ves el asm y te fijas que variable es la utilizada por ejemplo PP1 entonces pones esto...

en las declaraciones la pones ,DIM PP1H AS BYTE SYSTEM
DIM PP1H_TEMP AS BYTE SYSTEM


Y dentro de la interrupcion al inicio:
INTERRUPCION:
 PP1H_TEMP =PP1H
x
x
x
x
PP1H=PP1H_TEMP
context restore

El plus maneja un a serie de variables que las puedes ver facilmente editando el asm y esta es la forma de conservarlas despues de la interrupcion.Te mando el juego de las variables reservadas del PLUS asi te es mas facil reconocerlas..
TODO ESTO Enseñanzas del amigo lager.....no es mio yo solo lo aprendi.....No siempre es necesario el uso de este metodo pues simplemete con el context restore ya se salvan las del sistema solas.

Abrazo
K

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: INTERRUPCIONES REALES EN PLUS
« Respuesta #53 en: 16 de Octubre de 2004, 13:36:00 »
Solo agregando un poco mas de info a lo bien mensionado por el pana khasistos, si usas modelos de 16 bits tienes que agregar la instruccion CONTEXT SAVE  tambien antes del ISR, ahora guarda tu status,tufsr,etc,,, pero que psas con las variables del sistema(de proton+ me refiero) esas son las usadas para hacer calculos complejos una de ellas puede ser PP1 si esta se maneja muchas veces mas se a a ir incrementando y pasara a PP1H, y luego PP1HH y asi sucesivamente, dependiendo de l calculo a hacer, en caso de que DENTRO de nuestra interrupcion usemos una o varias(por eso en el manual se recomienda usar comandos simples, no serializados y lo mas que se pueda en asm)incluidas en un comando complejo como PRINT AT <--- aqui abria que guardar las posiciones para un GLCD y lo estados del flag, y demas,
Para no extender esta explicacion, las v.s que se usen deben ser guardadas y restauradas(esto no es falla del compilador, solo falta de vision del programador, el cual en sus proximas versiones es muy probable que ya venga incluido, asi que preparense )con context Restore y context save( esta solo necesaria para modelos de 16 bits). Asi que podemos decir que proton+ vamos para adelante, Otro detalle(para versiones desactualizadas) no soporta mas de 92 deficniciones de variables de sistema(v.S) ya que no era el punto estarlas definiendo, esto se usa como solucion alterna mientras adaptan este plus a nuevas versiones.
Un abrazo panas


 

anything