Un solo detalle que creo que no he puesto aún en todo este desarrollo que llevamos visto.
Es la
base de tiempos que estamos utilizando, y a los que se refieren las tablas de datos capturados por el PIC, que pueden verse en la imágen del post anterior.
Si os fíjais además de la columna de orden de detección hay otras dos que nos indican respectivamente el
Número de Overflows completos que se han producido en el TIMER1 y el
valor del Timer en el momento de producirse la interrupción.
Como las señales utilizadas en el ejemplo de dicha imagen están invertidas, esto es: que primero se produce la interrupción por flanco de bajada y despues viene la de subida, la primera linea de datos a tener en cuenta es precisamente la numero 0 de la tabla de Falling Edges, seguida de la número 0 de la de Rising Edges, a continuación se produce la numero 1 de la de Falling Edges y después la 1 de la otra tabla ... y así hasta las numeros 9 de ambas que definen el último pulso detectado.
Todos estos números estan expresados en
Overflows y
Ticks del
Timer1, que a su vez está configurado con:
setup_timer_1(T1_INTERNAL | T1_DIV_BY_1);Por lo que va exactamente a "toda pastilla" y esto significa que se incrementa,
un Tick cada (FOSC/4).Como el Cristal generador del Clock es de
20 Mhz tenemos un
Ciclo de instrucción de 1/2000000*4=0.0000002 segundos
o lo que es lo mismo
0.2 uS (
microsegundos) por Tick, valor por el que tenemos que multiplicar la columna
Timer para expresarla en Tiempos.
Como el TIMER1 es un contador de
16 Bits, de 0 a 65535, cada desbordamiento se produce
cada 65536 Ticks, o sea cada 0.2 uS * 65536 =
13107,2 uS, o lo que es lo mismo cada 13.1072 mS (milisegundos), valor por el que tenemos que multiplicar la columna
Overflows para expresarla en Tiempos.
Así, desde el inicio del muestreo. se puede calcular cada flanco de subida o bajada con:
X (en uS) = 13107,2 * Overflow + 0.2 uS * Timery esta X es la muestra que hay que
representar gráficamente, desplazando la correspondiente línea vertical del flanco, tras transformarla para adecuarla la escala de tiempos, establecida para cada división de la regla de medida (dibujada con pequeños puntos blancos sobre la imagen y que puede ser ajustada mediante
Escala (t))Continuamos para bingo
Os mantendré informados.