Se nota que estoy de proyecto???vuelvo con otra paradoja que me ha llevado casi al manicomio
El proyecto está realizado en CCS (compilado desde mplab para debugear mejor con ICD2). Todo las referencias sobre el programa que uso está referido al entorno de MPLAB con pluging para CCS.
Estoy como algunos sabeis realizando un proyecto en el que la temporización es crucial y cualquier desjuste te da un fallo en vete a saber tu donde y que es dificil de relacionar hasta que le das mil vueltas...
He aquí otro ejemplo de ello...
este código
btfsc PORTA, 0
bsf INDF0, 7
subwf FSR0L, W
btfsc STATUS,Z
goto fin_data
incf FSR0L
goto Get_Data
con porta a 0 e INDF >0 deberia realizarse en 8 ciclos de instrucción... pues bien despues de darle muchas vueltas y de sospechar de esta rutina veamos lo que dice el simulador de mplab compilando esta rutina y observando el stopwatch...
7 CICLOS???? pero cómo porqué... Ya visto el problema está claro que no está compilando lo que yo le he mandado... veamos la ventanita de program memory (para el que no lo sepa esta ventana contiene realmente lo que el pic tiene en su memoria de programa)
El problema en cuestión como podeis ver es que el compilador, imagino que ccs, supervisa el código y optimiza
btfsc STATUS,Z
goto fin_data
que se ejecutaría en 2/3 ciclos de instrucción
por
bz 0x44c
que se ejecuta en 1/2....