Hola chic@s, me ha surgido una duda existencial que si no la resuelvo me va a costar dormir...
Peleandome con el ccs me ha surgido una duda con el siguiente codigo:
#include <18F4450.h>
#fuses HSPLL,NOWDT,NOPROTECT,noDEBUG,NOLVP,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#byte PORTD=0Xf83
#bit BLANK=PORTD.0
#use fast_io (D)
void main(void){
while(1)
{
set_tris_D(0);
BLANK=0;
output_low(PIN_D0);
output_low(BLANK);
}
}
se supone q las 3 lineas "BLANK=0;""output_low(PIN_D0);"output_low(BLANK);" hacen lo mismo pero mirando el ensamblador q crea el ccs me dice:
12: BLANK=0;
0056 9083 BCF 0xf83, 0, ACCESS
13: output_low(PIN_D0);
0058 908C BCF 0xf8c, 0, ACCESS
14: output_low(BLANK);
005A B083 BTFSC 0xf83, 0, ACCESS
005C 0E01 MOVLW 0x1
005E 6E05 MOVWF 0x5, ACCESS
0060 6E06 MOVWF 0x6, ACCESS
0062 6A07 CLRF 0x7, ACCESS
0064 0E0F MOVLW 0xf
0066 6E09 MOVWF 0x9, ACCESS
0068 0E89 MOVLW 0x89
006A 6E08 MOVWF 0x8, ACCESS
006C DFCB RCALL 0x4
006E C005 MOVFF 0x5, 0x6
0072 6A07 CLRF 0x7, ACCESS
0074 0E0F MOVLW 0xf
0076 6E09 MOVWF 0x9, ACCESS
0078 0E92 MOVLW 0x92
007A 6E08 MOVWF 0x8, ACCESS
007C DFC3 RCALL 0x4
Que tiene de especial el "output_low(BLANK);" para que el ccs se complique tanto la vida???Las 3 harian lo mismo no?Siempre seria mejor utilizar las 2 primeras instrucciones? Esto del ccs va a acabar conmigo