Autor Tema: Hacer librerias para módulos  (Leído 1446 veces)

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

Desconectado gardelitock

  • PIC10
  • *
  • Mensajes: 6
Hacer librerias para módulos
« en: 29 de Noviembre de 2014, 12:05:17 »
Hola a todos!

Quiero empezar a investigar sobre librerias, para poder hacerlas para módulos tipo acelerómetros, teclados matriciales, giróscopos, lectores de tarjetas sd, etc. Actualmente estoy programando con el Pic C, pero tengo dos meses libres y me quiero pasar al MPLAB X con el compilador XC8.

Asi que quería pedirles recomendaciones de libros, pdf, páginas de internet, videotutoriales, lo que sea. Para poder tener una idea de como empezar. Ya que abriendo librerias me di cuenta que usan funciones que no son tan comunes al hacer un programa cualquiera y por esto quiero aprender con el manual de usuario del compilador y datasheet a mano, pero necesito algo de info para arrancar!

Espero su ayuda!
Saludos
Miedo tengo que esta vida un día, venga a cobrarse lo buena que fue!

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Hacer librerias para módulos
« Respuesta #1 en: 29 de Noviembre de 2014, 12:13:53 »

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Hacer librerias para módulos
« Respuesta #2 en: 29 de Noviembre de 2014, 12:21:02 »
la librerias (o bibliotecas) no son mas que un conjunto de código que se colocan en archivos separados con fines de organizar un programa que se hace largo y repetitivo.

yo suelo separar las constantes, las variables, las definiciones y funciones personalizadas en archivos separados.
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Hacer librerias para módulos
« Respuesta #3 en: 08 de Diciembre de 2014, 08:22:03 »
Lo mejor es leer otras librerias para darte cuenta de como funcionan.
Las mejores librerias estan hechas para Arduino, y como el codigo es C, hay que adaptar un poco, pero el codigo es muy similar.
Yo tambien quiero hacer mejores librerias, ya que me parece que el CCS hace un uso y definicion bastante precario. Tengo algunas hechas y van bien, pero podrian ir mejor.

Creo que lo mas util para librerias son los condicionales de precompilacion:
#if
#ifdef
#ifndef
etc.
Estos te permitiran compilar automaticamente segun el pic que se este usando. Por ejemplo:
Código: C
  1. // ---- COMPROBACIONES DE COMPATIBILIDAD ----
  2. #IF getenv("VERSION")<5.019
  3.         //Libreria creada con compilador CCS v5.019
  4.         //Para versiones anteriores comprobar que el codigo
  5.         //generado se adecua a los tiempos requeridos
  6.    #WARNING Compilador antiguo, comprueba que el codigo generado es valido
  7. #ENDIF
  8.  
  9. #IF getenv("CLOCK") != 32000000
  10.         //Necesitamos que el PIC corra a 32MHZ
  11.         #ERROR La velocidad del PIC debe ser de 32Mhz
  12. #ENDIF
  13.  
  14. #IFNDEF NUM_LEDS
  15.         #ERROR "NUM_LEDS" no definido
  16. #ELSE
  17.         #IF NUM_LEDS > 85
  18.                 //Solo podemos usar un maximo de 85 leds.
  19.                 //Cada led usa 3 bytes, y nuestro contador de envio es un INT
  20.                 #ERROR "NUM_LEDS" tiene que ser menor a 85
  21.         #ELIF NUM_LEDS*3 > getenv("RAM")
  22.                 #ERROR Tu PIC no tiene suficiente RAM para tantos LEDs
  23.         #ENDIF
  24. #ENDIF
  25. // ------------------------------------------

Este codigo genera ciertos errores o advertencias dependiendo de la velocidad del pic, de la version del compilador o de si hay una constante definida. Lo utilizo en una libreria para controlar leds. Esta aqui por si le quieres echar un vistazo: http://www.todopic.com.ar/foros/index.php?topic=42622.0
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.


 

anything