Autor Tema: Uso de USE_AND_MASKS  (Leído 1796 veces)

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

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Uso de USE_AND_MASKS
« en: 05 de Diciembre de 2015, 14:32:13 »
Alguien puede explicarme cual es la función de USE_AND_MASKS, la traducción la se lo que no se es para que se usa por ejemplo en este codigo.
Código: C
  1. #define _XTAL_FREQ 8000000 //The speed of your internal(or)external oscillator
  2. #define USE_AND_MASKS
  3.  
  4. #include <xc.h>
  5. #include "config.h"
  6. #include <plib/timers.h>
  7.  
  8. int i = 0;
  9. unsigned char Timer0Config;
  10. void SetupClock(void);
  11.  
  12. void main(int argc, char** argv) {
  13.  
  14.     SetupClock(); // Internal Clock to 8MHz
  15.    
  16.     TRISBbits.RB4 = 0; //set RB4 as output
  17.     LATB4 = 1;         //Make RB4 high when the program starts
  18.  
  19.     Timer0Config = TIMER_INT_ON & T0_16BIT & T0_SOURCE_INT & T0_PS_1_256 ;
  20.     OpenTimer0(Timer0Config);
  21.     WriteTimer0(0xE17B); //Please use HEX. Decimal don't work
  22.    
  23.     INTCONbits.TMR0IF = 0; //reset Interrupt Flag
  24.  
  25.     ei();     // This is like fliping the master switch to enable interrupt
  26.  
  27.     while(1) //infinite loop
  28.     {
  29.      
  30.     }
  31. }
  32.  
  33. void SetupClock()
  34. {
  35.     OSCCONbits.IRCF0 = 1;
  36.     OSCCONbits.IRCF1 = 1;
  37.     OSCCONbits.IRCF2 = 1;
  38. }
  39.  
  40. void interrupt TimerOverflow()
  41. {
  42.     if(INTCONbits.TMR0IF == 1)
  43.     {
  44.         LATB4 = ~LATB4;
  45.         INTCONbits.TMR0IF = 0;
  46.         WriteTimer0(0xE17B); //Please use HEX. Decimal don't work
  47.     }
  48.  
  49. }

Muchas Gracias.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re:Uso de USE_AND_MASKS
« Respuesta #1 en: 05 de Diciembre de 2015, 14:39:42 »
hola miguel, esta definiendo un macro sin secuencia de tokens es decir:

Citar
Un cuerpo de macro vacío está permitido. Ejemplo:

#define VACIO
Su efecto es doble, de forma que puede utilizarse con dos finalidades distintas, según se trate del código fuente, o de la acción de otros elementos del preprocesador.

En lo que respecta a la lógica del preprocesador, si se encuentra una expresión como la anterior, a la que falta la secuencia-de-tokens, el macro_identificador adopta el valor 1, que es cierto (true).  Este tipo de expresiones suele utilizarse en conjunción con la directivas de preproceso #ifdef e #ifndef ( 4.9.10e), que interrogan si un macro identificador está definido (es cierto) o no lo está (es falso).
En lo que respecta al código fuente, la presencia de un cuerpo de macro vacío, supone la eliminación de cada macro-identificador del código fuente, ya que cada ocurrencia de VACIO es sustituido por un nulo.

un saludo
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Uso de USE_AND_MASKS
« Respuesta #2 en: 05 de Diciembre de 2015, 14:55:28 »
Gracias juaperser1 por la definición algo parecido había leído, lo que no entiendo es que cambios habría en el código si quitásemos el USER_AND_MASKS

Saludos!
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re:Uso de USE_AND_MASKS
« Respuesta #3 en: 05 de Diciembre de 2015, 15:06:37 »
Gracias juaperser1 por la definición algo parecido había leído, lo que no entiendo es que cambios habría en el código si quitásemos el USER_AND_MASKS

Saludos!


en ese trozo de código que has colgado no sirve para nada, pero cuidado lo mismo se usa en otra fichero del programa, o quizá es un corta pega y se les ha olvidado borrar eso.

borralo y compila, si compila seguramente se les ha olvidado quitarlo.

un saludo
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Uso de USE_AND_MASKS
« Respuesta #4 en: 05 de Diciembre de 2015, 15:51:51 »
Gracias de nuevo juaperser1.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re:Uso de USE_AND_MASKS
« Respuesta #5 en: 05 de Diciembre de 2015, 18:40:11 »
Usa el buscador del foro: http://www.todopic.com.ar/foros/index.php?topic=42253.msg350584#msg350584

Revisa los archivos .h de las bibliotecas que utilices, como timers.h que incluyes en tu ejemplo, ahí puedes ver de manera clara que varias definiciones cambian según se utilice USE_AND_MASKS ó USE_OR_MASKS (más en concreto esta última).
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Uso de USE_AND_MASKS
« Respuesta #6 en: 05 de Diciembre de 2015, 19:08:43 »
Perdón por repetir la pregunta, sabia que había preguntado algo antes y no me había quedado muy claro pero no lo encontraba, por favor que algún moderador elimine el tema para que no haya repeticiones.

Gracias.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Uso de USE_AND_MASKS
« Respuesta #7 en: 05 de Diciembre de 2015, 19:22:50 »
Revisa los archivos .h de las bibliotecas que utilices, como timers.h que incluyes en tu ejemplo, ahí puedes ver de manera clara que varias definiciones cambian según se utilice USE_AND_MASKS ó USE_OR_MASKS (más en concreto esta última).
Gracias por decir donde buscar pero no se que mirar soy asi de tonto, todo el timer.h me parece lo mismo.

Miquel_S
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re:Uso de USE_AND_MASKS
« Respuesta #8 en: 05 de Diciembre de 2015, 20:34:45 »
Revisa los archivos .h de las bibliotecas que utilices, como timers.h que incluyes en tu ejemplo, ahí puedes ver de manera clara que varias definiciones cambian según se utilice USE_AND_MASKS ó USE_OR_MASKS (más en concreto esta última).
Gracias por decir donde buscar pero no se que mirar soy asi de tonto, todo el timer.h me parece lo mismo.

Miquel_S

Usa el buscador del IDE para encontrar donde se utiliza, porque en los códigos que has colgado no se utiliza ese macro, seguramente se utiliza para configurar algún periférico y poner ese macro en la función de configuración.

Pero si es un código que han adaptado, no se si tu u otra persona, como te dije antes yo probaría a quitarlo, o comentarlo y compilar, si no da errores ni warning, no se utiliza. Y si te da el error pinchando sobre él, te llevará directamente  donde se utiliza y asunto resuelto, ya lo habrás encontrado.

Un saludo
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw


 

anything