TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: samshiel_pic en 19 de Noviembre de 2006, 20:20:23

Título: Duda simplona con programa para PIC12F683
Publicado por: samshiel_pic en 19 de Noviembre de 2006, 20:20:23
Hola a todos!!
Estoy realizando un proyecto lo quiero realizar con el PIC12F683 pero nunca he trabajado con un pic sin usar un oscilador externo.

(http://i108.photobucket.com/albums/n18/sasmshiel/pic12f683.jpg)

El programa es muy sencillo:

Código: C
  1. /*____________________________________________________________________________*\
  2. ||                                                                            ||
  3. ||  SAMSHIEL_PIC"06                                                           ||
  4. ||  20/Noviembre/06                                                           ||
  5. ||                                                                            ||
  6. ||  Programa:  prueba_1                                                       ||
  7. ||  Version:   1.0                                                            ||
  8. ||                                                                            ||
  9. ||  Dispositivo: PIC 12f683          Compilador:    CCS vs3.249               ||
  10. ||  Entorno IDE: MPLAB IDE v7.20      Simulador:    Proteus 6.7sp3            ||
  11. ||                                                                            ||
  12. ||                                                                            ||
  13. ||____________________________________________________________________________||
  14. \*----------------------------------------------------------------------------*/
  15.  
  16. #include <12f683.h>
  17. #fuses nowdt,noput,nobrownout,noprotect,nomclr,intrc_io
  18. #define OSC_1MHZ    0x41
  19. #use delay (clock=1000000)
  20. #use fast_io(A)
  21. #byte port_a=5
  22. #use fixed_io(a_outputs=PIN_A2,PIN_A3,PIN_A4,PIN_A5)
  23.  
  24.  
  25. intermitente()
  26.    {
  27.    int x;
  28.    for(x=0;x=20;x++)
  29.       {
  30.       output_high(pin_A4);
  31.       delay_ms(500);
  32.       output_low(pin_A4);
  33.       delay_ms(500);
  34.       }
  35.    output_low(pin_A2 && pin_A3);
  36.    output_low(pin_A5);
  37.    }
  38.  
  39. void main ()
  40.    {
  41.    setup_oscillator(OSC_1MHZ);
  42.    while(1)
  43.       {
  44.       if(input(PIN_A0))
  45.          {
  46.           while(input(PIN_A0));
  47.             {
  48.             output_high(pin_A2);
  49.             output_high(pin_A5);
  50.             intermitente();
  51.             }
  52.          }
  53.  
  54.       if(input(PIN_A1))
  55.          {
  56.           while(input(PIN_A1));
  57.             {
  58.             output_high(pin_A3);
  59.             output_high(pin_A5);
  60.             intermitente();
  61.             }
  62.          }
  63.      }
  64.    }

Me gustaria saber si esta bien configurado el uso del oscilador interno. El problema es que no puedo probarlo hasta dentro de unos cuantos de dias y me he puesto hoy con el programa y me gustaria saber si esta bien.
Solo eso. Gracias amigos!!
Título: Re: Duda simplona con programa para PIC12F683
Publicado por: Nocturno en 20 de Noviembre de 2006, 02:46:32
Debe funcionar, estás usando los mismos fuses que en mi minidimmer, que está hecho con el mismo micro.
Título: Re: Duda simplona con programa para PIC12F683
Publicado por: samshiel_pic en 20 de Noviembre de 2006, 18:25:51
Hola! pues al primer round le he echo KO al oscilador interno. :mrgreen: Si que funciona bien el bichito con lo chiquitito que es jejeje. Tengo que modificar un poco el programa para que vaya mas fino. Pero me estoy comiendo la cabeza un monton con una tonteria que la he realizado varias veces ya con anterioridad pero con este micro nunca ya que es la primera vez que lo uso.
Es configurar el PORT_A de la siguiente manera:
Yo lo hago de la siguiente manera pero no me va muy bien:

Código: C
  1. SET_TRIS_A(0b00000011);
No se si por que el puerto solo tiene 6 I/O tengo que poner 0b000011 ó 0b00000011.

No se si me falta algo o no. Por que siempre me pasa esto con las cosas mas faciles y tontas de todas???? no lo llego a entender!!  :D
Título: Re: Duda simplona con programa para PIC12F683
Publicado por: Nocturno en 20 de Noviembre de 2006, 18:36:45
Ambas instrucciones son equivalentes, y la forma correcta de configurar los dos pines menos significativos como entradas.

Yo buscaría el error en otra parte del programa.