TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Cortijero en 04 de Marzo de 2010, 14:02:47

Título: Principiante con ganas de avanzar
Publicado por: Cortijero en 04 de Marzo de 2010, 14:02:47
Hola! es la primera vez que posteo. Estoy iniciandome en el mundo de los pics, y ya que he aprendido a manejar el programador con algunos programas de ejemplo, estoy haciendo mis primeros programas. Estoy usando el css y el mplab, y me surgen algunas dudas. (decir que en su dia aprendi en la universidad a programar en c++, asi que no parto de cero :)) He decidido empezar con un pic16f84a, ya que tengo alguno que otro...

La primera duda que me surge es sobre los fuses. He visto en la libreria del pic los distintos fuses que hay: // Fuses: LP,XT,HS,RC,NOWDT,WDT,NOPUT,PUT,PROTECT,NOPROTECT
Pero no se (aunque alguno se intuye) para que sirven en concreto.
Tambien agradeceria que me explicaseis para que sirve la instruccion fat_io() que aparece en tantos ejemplos que he visto. En los comentarios pone que es para optimizar las entradas salidas del puerto en concreto, pero me quedo igual  :?

Bueno, gracias de antemano por la ayuda, y espero no daros mucho la tabarra
Título: Re: Principiante con ganas de avanzar
Publicado por: Suky en 04 de Marzo de 2010, 14:24:30
El tema de los fuses, directamente hay que leer el datasheet. Igualmente aquí (http://www.todopic.com.ar/foros/index.php?topic=24720.0) se explica para que sirve cada uno.

Luego en este enlace (http://www.mikropic.com/forum/index.php?topic=49.0) hay un buen tutorial de CCS para que vayas evacuando algunas dudas.


Saludos!
Título: Re: Principiante con ganas de avanzar
Publicado por: Nocturno en 04 de Marzo de 2010, 14:43:24
Bienvenido Cortijero.

El fast_io permite indicar al compilador que serás tú, mediante tu programa, el que indique el sentido de los pines in o out usando el set_tris_x. Por defecto CCS está en modo "standard_io" y es él quien se encarga de establecer el sentido de los pines.
Título: Re: Principiante con ganas de avanzar
Publicado por: Cortijero en 04 de Marzo de 2010, 18:13:53
Oh, muchas gracias por la ayuda! gran tutorial!
Título: Re: Principiante con ganas de avanzar
Publicado por: Cortijero en 06 de Marzo de 2010, 10:06:11
Bueno, ese tutorial de css, ya lo tengo mas o menos controlado. Ahora me gustaria empezar con las interrupciones, que aun no tengo muy claro lo que son... Pero no consigo encontrar mucha informacion en c, todo lo que he encontrado hasta ahora es para ASM... Si sabeis de algun enlace interesante para interrupciones en c os lo agradeceria mucho!
Saludos y gracias!
Título: Re: Principiante con ganas de avanzar
Publicado por: Suky en 06 de Marzo de 2010, 12:14:32
Leer lo que encuentras sobre interrupciones en assembler te va a ayudar a entender como funcionan, porque en C es una función más que no tiene parámetros de estrada, no retorna valores y solo puede ser llamada por la interrupción. CCS tiene comandos que son para habilitar/deshabilitar una interrupción dada:

Código: C
  1. enable_interrupts(INT_TIMER1);
  2. disable_interrupts(INT_TIMER1);
Borrar su bit indicador de interrupción:

Código: C
  1. clear_interrupt(INT_TIMER1);

Habilitar interrupciones globales:

Código: C
  1. enable_interrupts(GLOBAL);

Y luego para indicarle al compilador que la siguiente función es para el tratamiento de la función solo hay que hacer:
Código: C
  1. #INT_TIMER1
  2. void isr_Timer(void){
  3.  
  4.    // CODIGO DE TRATAMIENTO DE INTERRUPCION.-
  5. }

Sencillo  ;-)

Saludos!