Autor Tema: Duda existencial sobre output_low()  (Leído 3042 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Rantamplan

  • PIC10
  • *
  • Mensajes: 38
Duda existencial sobre output_low()
« en: 27 de Marzo de 2011, 21:56:27 »
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:
Código: [Seleccionar]
#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:
Código: [Seleccionar]
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 :z)

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Duda existencial sobre output_low()
« Respuesta #1 en: 27 de Marzo de 2011, 22:25:43 »
Hola Rantamplan, dale una mirada a esto.

Saludos!

Desconectado Rantamplan

  • PIC10
  • *
  • Mensajes: 38
Re: Duda existencial sobre output_low()
« Respuesta #2 en: 27 de Marzo de 2011, 23:43:45 »
vaya bmb me sacas de todas! te voy a contratar de profesor  ;-)
Asi que para que funcione sin hacer tanta linea no deve ser una variable sino una constante con el numero de pin a la que se refiere. Osea que si quiero utilizar un nombre (BLANK) y ademas el output_low, es mejor poner esto:

#define BLANK  PIN_D0

output_low(BLANK);

Mañana lo mirare mas profundamente pero de momento ya me puedo ir a dormir trankilo, muchas gracias!

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Duda existencial sobre output_low()
« Respuesta #3 en: 28 de Marzo de 2011, 00:17:16 »
Hola Rantamplan.

... Osea que si quiero utilizar un nombre (BLANK) y ademas el output_low, es mejor poner esto:

#define BLANK  PIN_D0

output_low(BLANK);

Mañana lo mirare mas profundamente pero de momento ya me puedo ir a dormir trankilo, muchas gracias!

Si, esa sería la forma correcta de reemplazar el nombre de los pines.

Saludos!


 

anything