Hola amigos;
Me acerco a ustedes solicitando su ayuda para resolver este problemilla... no tengo experiencia en los timers de los pics, pero quiero que mi programa pueda estar evaluando una entrada analogica, donde estara constantemente analizando un valor, dado que si se lee que el valor subio o bajo un X valor, pase a otro proceso... sin embargo necesito que cada 5 minutos entre a una subrutina y el valor de referencia lo vuelva a tomar.
Dado que no tetngo nada de experiencia en estos timers, empiezo con un programa muy simple:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Device 16F84
XTAL 4
Dim cont As Word
cont = 0
OPTION_REG = %00000111
INTCON = %00100000
Symbol LED = PORTB.1
Low LED
On Interrupt GoTo My_Int
Fin:
High PORTB.2
DelayMS 100
Low PORTB.2
DelayMS 100
GoTo Fin
Disable
My_Int:
If cont >= 215 Then
High LED
DelayMS 500
Low LED
cont=0
Else
cont=cont+1
EndIf
Resume
Enable
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Se supone que estoy usando el desbordamiento del timer, y cada vez que pasa entra My_Int y suma un punto a la variable cont... todo funciona bien, pero por ejemplo, si yo le pido 215 puntos a la variable cont, me da aproximadamente 10 segundos, pero resulta que si cambio el valor del DelayMS 100, lo pongo a 300, los 10 segundos se pasan a 45 segundos...
Mi duda es: que estoy haciendo mal, ya que creo o entiendo (igual me equivoco), que la duracion de la interrupcion deberia ser igual sin importar las instrucciones que hay en el proceso, o quiere decir que para el timer un delayms de 100 dura lo mismo que si es de 300???
Espero me haya dado a entender, y agradeceria me ayudaran con este problema
Muchas gracias
