Buenas.
Estoy usando un par de PIC's 16F84A para experimentar y comprobar la precisión de los mismos, me refiero a los ciclos que consume una instrucción o una serie de instrucciones, suponiendo que la señal de reloj sea estable, entonces si el micro es estable en cuanto cuantos ciclos tarda en hacer algo, entonces se puede predecir con exactitud el tiempo de una tarea, con una resolución dada por el reloj.
Por eso me arme un circuito usando integrados de la serie 74HCxxx que son bastante rapidos y un par de PIC's a 4Mhz, la idea es que en un micro genero dos pulsos separados por 8 intrucciones NOP (asm) esto en teoria deberia hacer algo asi:
señal1------8 ciclos-------señal2
Este es el codigo correspondiente:
como cada ciclo en el PIC consume 4 ciclos de reloj deberia contar 32 ciclos entre las dos señales, pues con algo de esfuerzo me arme este circuito que hace esta medición, despues de una semana de programación (asm) y otra para corregir errores y ponerlo a funcionar, ya funciona de manera estable y correcta.
El asunto es que esta midiendo 34 a 35 ciclos en lugar de 32. Por fin la pregunta:
Alguien sabe a que se debe esto? si tiene corrección? si algun otro PIC es mas preciso en ese aspecto? o que me recomiendan para mejorar la precisión en general?
Estoy usando un par de PIC's 16F84A para experimentar y comprobar la precisión de los mismos, me refiero a los ciclos que consume una instrucción o una serie de instrucciones, suponiendo que la señal de reloj sea estable, entonces si el micro es estable en cuanto cuantos ciclos tarda en hacer algo, entonces se puede predecir con exactitud el tiempo de una tarea, con una resolución dada por el reloj.
Por eso me arme un circuito usando integrados de la serie 74HCxxx que son bastante rapidos y un par de PIC's a 4Mhz, la idea es que en un micro genero dos pulsos separados por 8 intrucciones NOP (asm) esto en teoria deberia hacer algo asi:
señal1------8 ciclos-------señal2
Este es el codigo correspondiente:
Código:
BTFSS PORTB,RB6 ;[COLOR="Red"]aqui me equivoque al transcribir el verdadero codigo usa BSF no BTFSS[/COLOR]
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BTFSS PORTB,RB7 ;[COLOR="Red"]aqui me equivoque al transcribir el verdadero codigo usa BSF no BTFSS[/COLOR]
como cada ciclo en el PIC consume 4 ciclos de reloj deberia contar 32 ciclos entre las dos señales, pues con algo de esfuerzo me arme este circuito que hace esta medición, despues de una semana de programación (asm) y otra para corregir errores y ponerlo a funcionar, ya funciona de manera estable y correcta.
El asunto es que esta midiendo 34 a 35 ciclos en lugar de 32. Por fin la pregunta:
Alguien sabe a que se debe esto? si tiene corrección? si algun otro PIC es mas preciso en ese aspecto? o que me recomiendan para mejorar la precisión en general?
Última edición: