TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Colonial_Warrior en 04 de Febrero de 2008, 13:03:06
-
:-/Soy nuevo en este foro trato de aprender pero me he topado con un punto que no puedo dilucidar adecuadamente, por lo que les solicito, que alguien me preste ayuda;mi pregunta se refiere a: if !debug, entindo que es no debug, pero no como lo interpreta el mcu, en este caso un 16f877para mas referencia lo vi en la AN592 de microchip
-
Podrías aclarar un poco más la cuestión. Poner la parte de código a la que haces referencia.
Un saludo
-
Es una negación y como tal lo entiende el compilador... no obstante para el compilador
true = 1 o mayor que 1
false = 0 y solo si es cero
if !debug será interpretado como if debug = 0 .....
-
corrijo a elmasvital:
if !debug será interpretado como if (debug == 0) .....
lo que pasa que usar if !debug es más elegante que utilizar
if (debug == 0)
-
también
if not debug ...
-
gracias por las respuestas, aqui les pongo la nota aplicativa en cuestión para que sigais ayudando a aprender.
desde ya muchas gracias.
-
Debug es una variable del preprocesador que sirve para incluir una serie de instrucciones en tiempo de compilación si se ha activado el debug u otras si no está activa.
Se incluyen las instrucciones si Debug == 0
IF !Debug
00299 call delay50mS
00300 call delay50mS
00301 call delay50mS
00302 call delay50mS
00303 ENDIF
Se incluyen las instrucciones si Debug == 1
IF Debug
00311 ;This routine debugs freq. on a PICDEM1 board.
00AB 00312 checkRA1
00AB 0625 00313 btfsc _ra1
00AC 0AAB 00314 goto checkRA1
00AD 09D7 00315 call delay200mS
00AE 020B 00316 movf fhi,W
00AF 0026 00317 movwf PORTB
00B0 00318 chkRA1hi
00B0 0725 00319 btfss _ra1
00B1 0AB0 00320 goto chkRA1hi
00B2 00321 chkRA1lo
00B2 0625 00322 btfsc _ra1
00B3 0AB2 00323 goto chkRA1lo
00B4 09D7 00324 call delay200mS
00B5 020A 00325 movf flo,W
00B6 0026 00326 movwf PORTB
00B7 0725 00327 btfss _ra1
00B8 0AB7 00328 goto $-1
00329 ENDIF
En este caso cuando pones Debug = 1, estamos en un proceso de depuración, por el contrario si ponemos Debug = 0 estaríamos con el programa en explotación.
Un saludo
-
corrijo a elmasvital:
if !debug será interpretado como if (debug == 0) .....
lo que pasa que usar if !debug es más elegante que utilizar
if (debug == 0)
el asm me esta taladrando la cabeza...
=0 e una igualación ...
==0 es una comparación
1 saludo
-
gracias por los datos que me han alcanzado todos y cada uno de vostros,esto me pone en camino nuevamente y me saca de mi loop mental
saludos...
-
De nada, nosotros encantados de poderte haber realizado un reset :D :D :D
Un saludo