Autor Tema: Configuraciones por defecto de PICs  (Leído 5267 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Configuraciones por defecto de PICs
« en: 06 de Diciembre de 2010, 17:31:44 »
Hola a todos!
Cuando empece con los PICs elegi algunos y me quede con ellos para la mayoria de mis proyectos, por eso me cree archivos con la configuracion por defecto para dichos micros. Asi cuando quisiera empezar un nuevo proyecto para alguno de ellos, simplemente tendria que hacer pequeñas modificaciones, pero no empezar de cero. Esto el CCS te lo hace con un wizard, pero aun asi queda un poco incompleto y por eso yo fui creando mis propios archivos.
Los que tengo hasta ahora los compartire con vosotros, aunque vereis que alguno esta mas completo que otro.

12F683:
Código: C
  1. #include <12F683.h>
  2. #device adc=8
  3.  
  4. #FUSES XT,NOWDT,NOMCLR,PUT,INTRC_IO,PROTECT
  5.  
  6. #use delay(clock=8000000)
  7. #use fast_io(a)
  8.  
  9. //GPIO
  10. #byte GP    =  0x05
  11.  
  12. #bit X          = GP.0
  13. #bit X          = GP.1
  14. #define X       PIN_A2
  15. #bit X          = GP.3
  16. #define X       PIN_A4
  17. #define X       PIN_A5
  18.  
  19. //Constantes
  20.  
  21. //Variables
  22.  
  23. //Rutinas
  24. void Funcion(void);
  25.  
  26. #int_EXT
  27. void INT_EXT_isr(void){
  28.  
  29. }
  30.  
  31. #int_TIMER1
  32. void TIMER1_isr(void){
  33. //Timer de 16 bits --> 65536 = 1 RTCC
  34. //Pescaler de 1:x
  35. //x tick cada x uS
  36.  
  37. }
  38.  
  39. void main() {
  40.         setup_adc_ports(sAN0|VSS_VDD);
  41.         setup_adc(ADC_CLOCK_INTERNAL);
  42.         setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
  43.         setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
  44.         setup_timer_2(T2_DISABLED,0,1);
  45.         setup_ccp1(CCP_COMPARE_INT);
  46.         setup_comparator(NC_NC);
  47.         setup_vref(FALSE);
  48.  
  49.         enable_interrupts(INT_TIMER0);
  50.         enable_interrupts(INT_TIMER1);
  51.         enable_interrupts(INT_TIMER2);
  52.         enable_interrupts(INT_EXT);
  53.         enable_interrupts(INT_CCP1);
  54.         enable_interrupts(INT_RA);
  55.         enable_interrupts(INT_EEPROM);
  56.         enable_interrupts(INT_AD);
  57.         enable_interrupts(INT_OSC_FAIL);
  58.         enable_interrupts(GLOBAl);
  59.  
  60.         setup_oscillator(OSC_8MHZ);
  61.         set_tris_a(0b00000000);
  62.         set_adc_channel(ADC);
  63.         ext_int_edge(0,H_TO_L); //configura INT para que solo se active a la bajada
  64.  
  65. }
  66. void Funcion(void){
  67.  
  68. }

16F84A:
Código: C
  1. #include <16F84A.h>
  2.  
  3. #FUSES XT,NOWDT,NOPROTECT
  4.  
  5. #use delay(clock=4000000)
  6. #use fast_io(a)
  7. #use fast_io(b)
  8.  
  9. //GPIO
  10. #byte PORTA    =  0x05
  11. #byte PORTB             = 0x06
  12.  
  13. #bit X          = PORTA.0
  14. #bit X          = PORTA.1
  15. #bit X          = PORTA.2
  16. #bit X          = PORTA.3
  17. #bit X          = PORTA.4
  18. //#bit MCLR             = PORTA.5
  19.  
  20. #bit X          = PORTB.0
  21. #bit X          = PORTB.1
  22. #bit X          = PORTB.2
  23. #bit X          = PORTB.3
  24. #bit X          = PORTB.4
  25. #bit X          = PORTB.5
  26. #bit X          = PORTB.6
  27. #bit X          = PORTB.7
  28. //#define X     PIN_B7
  29.  
  30. //Constantes
  31.  
  32. //Variables
  33.  
  34. //Rutinas
  35. void Funcion(void);
  36.  
  37. #int_EXT
  38. void INT_EXT_isr(void){
  39.  
  40. }
  41.  
  42. #int_TIMER0
  43. void TIMER0_isr(void){
  44. //Timer de 8 bits --> 256 = 1 RTCC
  45. //Pescaler de 1:x
  46. //1 tick cada x uS
  47.  
  48. }
  49.  
  50. void main() {
  51.         setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
  52.         ext_int_edge(0,H_TO_L); //configura INT para que solo se active a la bajada
  53.  
  54.         enable_interrupts(INT_TIMER0);
  55.         enable_interrupts(INT_EXT);
  56.         enable_interrupts(INT_RB);
  57.         enable_interrupts(GLOBAL);
  58.  
  59.         set_tris_a(0b00000000);
  60.         set_tris_b(0b00000000);
  61.        
  62.         do{
  63.                
  64.         }while(TRUE);
  65.  
  66. }
  67.  
  68. void Funcion(void){
  69.  
  70. }

16F88:
Código: C
  1. //------------------------------------------------------------------------------
  2. //                    TITULO PROYECTO
  3. //
  4. // Descripcion:
  5. //
  6. // PIC: 16F88
  7. //
  8. //------------------------------------------------------------------------------
  9.  
  10. #include <16F88.h>
  11. #device adc=8
  12.  
  13. #FUSES NOWDT            //No Watch Dog Timer
  14. #FUSES INTRC_IO         //oscilador interno, pines CLK como I/O
  15. #FUSES PUT                      //Power up timer
  16. #FUSES MCLR                     //Un pin para el reset
  17. #FUSES NOLVP            //no low voltage programing
  18.  
  19. #use delay(clock=8000000)     //clock de 8Mhz
  20. #use fast_io(a)               //se accede al puerto a como memoria
  21. #use fast_io(b)               //se accede al puerto b como memoria
  22.  
  23. //--- Constantes ---
  24.  
  25. //------------------
  26.  
  27. //--- Variables ---
  28.  
  29. //-----------------
  30.  
  31. // --- Timer 0 ---
  32. #int_TIMER0
  33. void TIMER0_isr(void) {
  34. //Timer de 8 bits --> 256 valores
  35. //Clock 8Mhz --> 1 ciclo cada 0.5uS
  36. //Prescaler de 1:1 --> 1 tick cada 0.5uS
  37. //Set_timer0(0) --> Overflow cada 128uS
  38.  
  39. }
  40. // ---------------
  41.  
  42. // --- Timer 1 ---
  43. #int_TIMER1 //timer control de servo
  44. void TIMER1_isr(void) {
  45. //Timer de 16 bits --> 65536 valores
  46. //Clock 8Mhz --> 1 ciclo cada 0.5uS
  47. //Pescaler de 1:1 --> 1 tick cada 0.5uS
  48.  
  49. }
  50. // ---------------
  51.  
  52. void main(void) {
  53.        
  54.         setup_adc_ports(NO_ANALOGS|VSS_VDD);      //no hay entradas analogicas
  55.         setup_adc(ADC_OFF);                       //adc apagado
  56.         setup_spi(FALSE);
  57.         setup_timer_0(RTCC_INTERNAL|RTCC_DIV_8);  //configuracion timer0
  58.         setup_timer_1(T1_INTERNAL|T1_DIV_BY_2);   //configuracion timer1
  59.         setup_timer_2(T2_DISABLED,0,1);           //timer2 apagado
  60.         setup_comparator(NC_NC_NC_NC);            //comparador apagado
  61.         setup_vref(FALSE);                        //no se usa voltaje de referencia
  62.         enable_interrupts(INT_TIMER1);            //habilita interrupcion timer1
  63.         enable_interrupts(GLOBAL);                //habilita las interrupciones
  64.         setup_oscillator(OSC_8MHZ|OSC_INTRC);     //configura oscilador interno
  65.         set_tris_a(0x00);                         //
  66.         set_tris_b(0x00);                         //
  67.  
  68.         do{
  69.        
  70.         }while(true);
  71. }

16F648A:
Código: C
  1. #include <16F648A.h>
  2.  
  3. #FUSES XT,INTRC_IO,NOWDT,PUT,NOMCLR,NOBROWNOUT,NOLVP,NOCPD,NOPROTECT
  4.  
  5. #use delay(clock=4000000)
  6. #use fast_io(a)
  7. #use fast_io(b)
  8.  
  9. //GPIO
  10. #byte PORTA    =  0x05
  11. #byte PORTB             = 0x06
  12.  
  13. #bit X          = PORTA.0
  14. #bit X          = PORTA.1
  15. #bit X          = PORTA.2
  16. #bit X          = PORTA.3
  17. #bit X          = PORTA.4
  18. #bit X          = PORTA.5
  19. #bit X          = PORTA.6
  20. #bit X          = PORTA.7
  21.  
  22. #bit X          = PORTB.0
  23. #bit X          = PORTB.1
  24. #bit X          = PORTB.2
  25. #bit X          = PORTB.3
  26. #bit X          = PORTB.4
  27. #bit X          = PORTB.5
  28. #bit X          = PORTB.6
  29. #bit X          = PORTB.7
  30. //#define X     PIN_B7
  31.  
  32. //Constantes
  33.  
  34. #use rs232(baud=19200,xmit=TX,rcv=RX)
  35.  
  36. //Variables
  37.  
  38. //Rutinas
  39. void Funcion(void);
  40.  
  41. #int_EXT
  42. void INT_EXT_isr(void){
  43.  
  44. }
  45.  
  46. #int_TIMER1
  47. void TIMER1_isr(void){
  48. //Timer de 16 bits --> 65536 = 1 RTCC
  49. //Pescaler de 1:x
  50. //1 tick cada x uS
  51.  
  52. }
  53.  
  54. void main() {
  55.         setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
  56.         setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
  57.         setup_timer_2(T2_DISABLED,0,1);
  58.         setup_ccp1(CCP_COMPARE_INT);
  59.         setup_comparator(NC_NC_NC_NC);
  60.         setup_vref(FALSE);
  61.  
  62.         enable_interrupts(INT_TIMER0);
  63.         enable_interrupts(INT_TIMER1);
  64.         enable_interrupts(INT_TIMER2);
  65.         enable_interrupts(INT_EXT);
  66.         enable_interrupts(INT_CCP1);
  67.         enable_interrupts(INT_RB);
  68.         enable_interrupts(INT_EEPROM);
  69.         enable_interrupts(INT_OSC_FAIL);
  70.         enable_interrupts(GLOBAL);
  71.  
  72.         setup_oscillator(OSC_4MHZ);
  73.         set_tris_a(0b00000000);
  74.         set_tris_b(0b00000000);
  75.         ext_int_edge(0,H_TO_L); //configura INT para que solo se active a la bajada
  76.        
  77.         do{
  78.                
  79.         }while(TRUE);
  80.  
  81. }
  82. void Funcion(void){
  83.  
  84. }

16F690:
Código: C
  1. /------------------------------------------------------------------------------
  2. //                    TITULO PROYECTO
  3. //
  4. // Descripcion:
  5. //
  6. // PIC: 16F690
  7. //
  8. //------------------------------------------------------------------------------
  9.  
  10. #include <16F690.h>
  11. #device adc=8
  12.  
  13. #FUSES NOWDT            //No Watch Dog Timer
  14. #FUSES INTRC_IO         //oscilador interno, pines CLK como I/O
  15. #FUSES PUT                      //Power up timer
  16. #FUSES MCLR                     //Un pin para el reset
  17. #FUSES BROWNOUT         //reinicia por bajo voltage
  18. #FUSES PROTECT          //code protected
  19.  
  20. #use delay(clock=8000000)     //clock de 8Mhz
  21. #use fast_io(a)               //se accede al puerto a como memoria
  22. #use fast_io(b)               //se accede al puerto b como memoria
  23. #use fast_io(c)               //se accede al puerto c como memoria
  24.  
  25. //--- Constantes ---
  26. #byte PORTA     = 0x05
  27. #byte PORTB     = 0x06
  28. #byte PORTC     = 0x07
  29.  
  30. #bit A0         = PORTA.0
  31. #bit A1         = PORTA.1
  32. #bit A2         = PORTA.2
  33. #bit A3         = PORTA.3
  34. #bit A4         = PORTA.4
  35. #bit A5         = PORTA.5
  36.  
  37. #bit B4         = PORTB.4
  38. #bit RX         = PORTB.5
  39. #bit B6         = PORTB.6
  40. #bit TX         = PORTB.7
  41.  
  42. #bit C0         = PORTC.0
  43. #bit C1         = PORTC.1
  44. #bit C2         = PORTC.2
  45. #bit C3         = PORTC.3
  46. #bit C4         = PORTC.4
  47. #bit C5         = PORTC.5
  48. #bit C6         = PORTC.6
  49. #bit C7         = PORTC.7
  50. //------------------
  51.  
  52. //--- Variables ---
  53.  
  54. //-----------------
  55.  
  56. #use rs232(baud=19200,xmit=PIN_B7,rcv=PIN_B5,parity=N,bits=8,stop=1)
  57.  
  58. // --- Timer 0 ---
  59. #int_TIMER0
  60. void TIMER0_isr(void) {
  61. //Timer de 8 bits --> 256 valores
  62. //Clock 8Mhz --> 1 ciclo cada 0.5uS
  63. //Prescaler de 1:1 --> 1 tick cada 0.5uS
  64. //Set_timer0(0) --> Overflow cada 128uS
  65.  
  66. }
  67. // ---------------
  68.  
  69. // --- Timer 1 ---
  70. #int_TIMER1
  71. void TIMER1_isr(void) {
  72. //Timer de 16 bits --> 65536 valores
  73. //Clock 8Mhz --> 1 ciclo cada 0.5uS
  74. //Pescaler de 1:1 --> 1 tick cada 0.5uS
  75.  
  76. }
  77. // ---------------
  78.  
  79. void main(void) {
  80.        
  81.         setup_oscillator(OSC_8MHZ|OSC_INTRC);   //configura oscilador interno
  82.         setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);//configuracion timer0
  83.         setup_timer_1(T1_DISABLED);                             //configuracion timer1
  84.         setup_timer_2(T2_DISABLED,0,1);                 //configuracion timer2
  85.         setup_ccp1(CCP_OFF);                                    //configuracion CCP
  86.         setup_adc(ADC_OFF);                                             //configuracion analogica
  87.         setup_adc_ports(NO_ANALOGS);                    //configuracion puerto analogico
  88.         setup_spi(FALSE);                                               //configuracion SPI
  89.         setup_comparator(NC_NC_NC_NC);                  //comparador apagado
  90.         setup_vref(FALSE);                                              //no se usa voltaje de referencia
  91.  
  92.         enable_interrupts(GLOBAL);                      //habilita las interrupciones
  93.         //enable_interrupts(INT_RTCC);          //habilita interrupcion
  94.         //enable_interrupts(INT_RB);                    //habilita interrupcion
  95.         //enable_interrupts(INT_EXT);                   //habilita interrupcion
  96.         //enable_interrupts(INT_AD);                    //habilita interrupcion
  97.         //enable_interrupts(INT_TBE);                   //habilita interrupcion
  98.         //enable_interrupts(INT_RDA);                   //habilita interrupcion
  99.         //enable_interrupts(INT_TIMER0);                //habilita interrupcion timer0
  100.         //enable_interrupts(INT_TIMER1);                //habilita interrupcion timer1
  101.         //enable_interrupts(INT_TIMER2);                //habilita interrupcion timer2
  102.         //enable_interrupts(INT_CCP1);          //habilita interrupcion
  103.         //enable_interrupts(INT_SSP);                   //habilita interrupcion
  104.         //enable_interrupts(INT_EEPROM);                //habilita interrupcion
  105.         //enable_interrupts(INT_RA);                    //habilita interrupcion
  106.         //enable_interrupts(INT_OSC_FAIL);      //habilita interrupcion
  107.         //enable_interrupts(INT_COMP);          //habilita interrupcion
  108.         //enable_interrupts(INT_COMP2);         //habilita interrupcion
  109.         //enable_interrupts(INT_RA0);                   //habilita interrupcion
  110.         //enable_interrupts(INT_RA1);                   //habilita interrupcion
  111.         //enable_interrupts(INT_RA2);                   //habilita interrupcion
  112.         //enable_interrupts(INT_RA3);                   //habilita interrupcion
  113.         //enable_interrupts(INT_RA4);                   //habilita interrupcion
  114.         //enable_interrupts(INT_RA5);                   //habilita interrupcion
  115.         //enable_interrupts(INT_RB4);                   //habilita interrupcion
  116.         //enable_interrupts(INT_RB5);                   //habilita interrupcion
  117.         //enable_interrupts(INT_RB6);                   //habilita interrupcion
  118.         //enable_interrupts(INT_RB7);                   //habilita interrupcion
  119.        
  120.         port_a_pullups(0b00011111);             //pullups del puerto a
  121.         port_b_pullups(0b11110000);             //pullups del puerto b
  122.         set_tris_a(0b00011111);                 //
  123.         set_tris_b(0b11110000);                 //
  124.         set_tris_c(0b11111111);                 //
  125.  
  126.         do{
  127.        
  128.         }while(true);
  129. }

Espero que sea util, y si alguien tiene mas que comparta ;)
Cuando tenga mas los pondre
Salu2
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Configuraciones por defecto de PICs
« Respuesta #1 en: 06 de Diciembre de 2010, 17:55:17 »
Hola Marttyn:

Por aquí puedes encontrar una librería para puertos en ccs.

Y en esta otra página se puede encontrar libreria para frecuencia pwm ccs.

Por lo demas siempre uso el PIC WIZARD de CCS, lo abro y luego copio lo que necesito de el en un archivo de texto y finalmente lo paso a CCS.

 :-/
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Configuraciones por defecto de PICs
« Respuesta #2 en: 06 de Diciembre de 2010, 20:23:45 »
Luis, la libreria para puertos es algo diferente. Lo que yo intento hacer en los archivos es dejar todo configurado, como perifericos, fuses, oscilador, etc.
A mi me es muy util ya que no uso el CCS IDE, sino el MPLAB con el compilador CCS y ahi no hay wizard :(
Ademas, el wizard de CCS no deja todo configurado. Yo prefiero poner TODAS las configuraciones, asi si surge algun problema es mas probable que este en el codigo y no en la configuracion de un pin como analogico en vez de digital por ejemplo.
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Configuraciones por defecto de PICs
« Respuesta #3 en: 07 de Diciembre de 2010, 20:23:02 »


12F683:
Código: C
  1. #include <12F683.h>
  2. #device adc=8
  3. #FUSES XT,NOWDT,NOMCLR,PUT,INTRC_IO,PROTECT

Yo la verdad me quede en duda con esta linea

#FUSES XT,NOWDT,NOMCLR,PUT,INTRC_IO,PROTECT

Por que pone cristal y pone oscilador interno, nunca lo eh usado asi, para que lo utilizas???

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Configuraciones por defecto de PICs
« Respuesta #4 en: 07 de Diciembre de 2010, 20:57:00 »


12F683:
Código: C
  1. #include <12F683.h>
  2. #device adc=8
  3. #FUSES XT,NOWDT,NOMCLR,PUT,INTRC_IO,PROTECT


Yo la verdad me quede en duda con esta linea

#FUSES XT,NOWDT,NOMCLR,PUT,INTRC_IO,PROTECT

Por que pone cristal y pone oscilador interno, nunca lo eh usado asi, para que lo utilizas???

Imposible, eso debe generar un error en la configuración  :?
No contesto mensajes privados, las consultas en el foro

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Configuraciones por defecto de PICs
« Respuesta #5 en: 07 de Diciembre de 2010, 21:00:02 »


12F683:
Código: C
  1. #include <12F683.h>
  2. #device adc=8
  3. #FUSES XT,NOWDT,NOMCLR,PUT,INTRC_IO,PROTECT

yo la verdad pense eso pero realmente no se si funcione si nuestro colega nos desmiente sera un hecho

Yo la verdad me quede en duda con esta linea

#FUSES XT,NOWDT,NOMCLR,PUT,INTRC_IO,PROTECT

Por que pone cristal y pone oscilador interno, nunca lo eh usado asi, para que lo utilizas???

Imposible, eso debe generar un error en la configuración  :?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Configuraciones por defecto de PICs
« Respuesta #6 en: 07 de Diciembre de 2010, 21:06:47 »
Lo que pasa que esas 2 opciones son para los mismo bits, entonces hay que seleccionar 1. Si funciona es de suerte  :D


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Configuraciones por defecto de PICs
« Respuesta #7 en: 09 de Diciembre de 2010, 06:02:01 »
:D
Creo que eso asi lo vengo arrastrando hace años de un wizard del CCS.
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Configuraciones por defecto de PICs
« Respuesta #8 en: 09 de Diciembre de 2010, 10:53:15 »
:D
Creo que eso asi lo vengo arrastrando hace años de un wizard del CCS.

 :shock: Justo enganchaste un bug!  :D
No contesto mensajes privados, las consultas en el foro

Desconectado aitorsp

  • PIC18
  • ****
  • Mensajes: 296
Re: Configuraciones por defecto de PICs
« Respuesta #9 en: 22 de Julio de 2011, 08:31:15 »
Lo que pasa que esas 2 opciones son para los mismo bits, entonces hay que seleccionar 1. Si funciona es de suerte  :D

Lo logico seria ponerlo asi, no?

#include <12F683.h>
#device adc=8
#FUSES NOWDT,NOMCLR,PUT,INTRC_IO,PROTECT
#use delay(clock=8000000)


ó asi:

#include <12F683.h>
#device adc=8
#FUSES NOWDT,NOMCLR,PUT,INTRC_IO,PROTECT
#use delay(internal=8000000)


De cualquiera de las dos formas estarias utilizando el oscilador interno.

Un saludo

Aitor

Desconectado tannke

  • PIC16
  • ***
  • Mensajes: 176
Re: Configuraciones por defecto de PICs
« Respuesta #10 en: 22 de Julio de 2011, 16:42:07 »
Lo que pasa que esas 2 opciones son para los mismo bits, entonces hay que seleccionar 1. Si funciona es de suerte  :D

Lo logico seria ponerlo asi, no?

#include <12F683.h>
#device adc=8
#FUSES NOWDT,NOMCLR,PUT,INTRC_IO,PROTECT
#use delay(clock=8000000)


ó asi:

#include <12F683.h>
#device adc=8
#FUSES NOWDT,NOMCLR,PUT,INTRC_IO,PROTECT
#use delay(internal=8000000)


De cualquiera de las dos formas estarias utilizando el oscilador interno.

Un saludo

Aitor

?¿ :huh:
No son iguales los dos?


 

anything