Microcontroladores PIC en Linux.
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Empezar a programar con SDCC y Piklab desde cero

3 participantes

Ir abajo

Empezar a programar con SDCC y Piklab desde cero Empty Empezar a programar con SDCC y Piklab desde cero

Mensaje por cannabis68 Dom 2 Mayo 2010 - 20:14

Aqui hay una serie de pasos para empezar a programar y simular con Small Device C Compiler para aquellos que no tienen idea de como empezar (como me paso a mi). Estos pasos se hicieron basados un una PC con Linux Ubuntu 10.04 LTS de 32 bits (funcionan tambien en una con Ubuntu 9).

Antes que nada explicar que es el software que vamos a necesitar:
SDCC (v. 2.9) ===> Compilador de lenguaje C libre disponible para Linux
Piklab (v 0.15) ===> Entorno gráfico que nos ayuda a compilar con varios compiladores, entre ellos SDCC.
Proteus (v. 7.5)(opcional) ==> Simulador de electrónica que funciona bajo Windows (puede ejecutado en Linux con Wine)

NOTA: Es posible compilar correctamente tan solo usando el SDCC con lineas de comandos de la terminal de Linux, aunque por comodidad lo aremos con Piklab.

1. Hay que descargar e instalar el SDCC 2.9, yo lo hice desde repositorio de Synaptic (Sistema > Administracion > Gestor de paquetes Synaptic), ponemos buscar SDCC, seleccionamos el compilador y los archivos adicionales que usa y los marcamos para instalar.

Empezar a programar con SDCC y Piklab desde cero Symantic.th

2. De igual forma descargamos del Synaptic el Piklab 0.15 y su accesorio.


Empezar a programar con SDCC y Piklab desde cero Piklabb.th


3. Una vez instalado corremos el Piklab desde Aplicaciones > Programación > Piklab.


4. Una vez abierto el Piklab lo primero que hay que hacer es rectificar que reconoce el SDCC, nos vamos a Settigs > Configurar compilador (me gusta esta mezcla de spanglish xD), de ahi nos vamos a Compilador C > Small Device C Compiler y de los 4 modulos que nos detecta debe decir "Se encontró xxx", si no es así o tienes instalado el compilador con Wine, hay que buscar los ejecutables y poner en Tipo de ejecutable Windows.

Empezar a programar con SDCC y Piklab desde cero Complilador.th

5. Ya seguros de que tenemos instalado todo empezamos a crear un nuevo proyecto, donde nos creara la carpeta y el archivo que usaremos, ademas de que nos proporcionara una plantilla de "C" para que podamos programar mas fácilmente.


Empezar a programar con SDCC y Piklab desde cero Proyectou.th


6. Ya podemos por fin empezar a escribir nuestro programa, el siguiente programa es un ejemplo donde un Led parpadea por unos segundos:

#include
typedef unsigned int word;
word at 0x2007 CONFIG = _XT_OSC & _WDT_OFF & _PWRTE_OFF & _BODEN_ON &
_LVP_ON & _CPD_OFF & _WRT_ENABLE_ON & _DEBUG_OFF & _CP_OFF;
void delay_ms(long ms)
{
long i;
while (ms--)
for (i=0; i < 300; i++)
;
}
void main() {

TRISB1 = 0;
while(1)
{
RB1=0;
delay_ms (200);
RB1=1;
delay_ms (200);
}
}


Empezar a programar con SDCC y Piklab desde cero Programat.th


7. Una vez terminado el programa le damos al botón "Construir proyecto" donde nos debe decir "Exito" si compilo bien el programa, ademas genera unos archivos en la carpeta del proyecto, de la cual nos interesa por ahora "parpadeo_Led.asm" (este es el programa en version ensamblador) y "parpadeo_Led.hex" (este es el programa listo para programar en el PIC, tambien sirve para cargarlo en el Proteus para simular).

Empezar a programar con SDCC y Piklab desde cero Compilado.th

8. Ya teniendo los archivos parpadeo_Led.hex podemos programar el PIC según el método y el dispositivo que uno quiera, aunque para estar seguros de lo que vamos a programar seria buena idea simularlo en algún programa. Hay algunos programas de simulación de PIC para Linux, pero en mi experiencia personal aun son bastante problemáticos y siempre tienen un margen de error grande, asi que para ir a la segura simulo en Proteus, que es una simulador de electrónica muy potente capaz de simular un sinfín de microcontroladores, de los cuales se incluyen los PIC. Cabe mencionar que Proteus en un programa que corre bajo Windows y necesita Licencia de uso. Se puede correr bajo Linux con el Wine, asi que les dejo a su criterio el uso de este simulador.

9. Primero después de instalar y correr Isis de Proteus, armamos nuestro circuito con el PIC correspondiente y su correcta configuración del oscilador:

Empezar a programar con SDCC y Piklab desde cero Pic1tb.th

Nota: En la imagen uso un PIC16F84a cuando en realidad debería estar usando un PIC16F84.

10. Una vez armado el circuito simplemente le damos doble click sobre el modulo del PIC y nos aparece una ventana donde debemos especificar la velocidad del oscilador y una opción para explorar el archivo .hex para simularlo, aqui le cargamos el "parpadeo_Led.hex"

Empezar a programar con SDCC y Piklab desde cero Pic2z.th

11. Ya solo le damos al boton de PLAY y vemos como el led enciende y apaga. Cabe mencionar que el Proteus posee otras herramientas de programación del PIC que son de mucha ayuda, así que invito a los que se interesen a probar este magnifico simulador.

12. Para compilar solo usando SDCC sin entorno grafico:

- abrimos una ventana de la terminal de Linux y nos posicionamos sobe la carpeta donde tengamos el archivo parpadeo_Led.c, por ejemplo, si esta en mi escritorio tecleo en la terminal

"cd /home/daniel/Escritorio"

- una vez posicionado en la dirección del archivo .c tecleamos las instrucciones:

"sdcc -mpic14 -p16f84 --debug -I -c parpadeo_Led.c"

lo cual nos generara los archivos de compilación que necesitamos en la carpeta descrita. Si quieren saber que significa cada opción del compilador pulsen "sdcc" en la terminal de Linux para una vista detallada del compilador.

Nota: Este pequeño tutorial es una serie de ejemplos y tutoriales que busque en internet y en este mismo foro y que sintetizo en este post, no pretendo exponerme como un experto en programación de PIC's ni mucho menos en Linux, pues aun soy bastante n00b en este tema. Como bien decía un profesor en la facultad: "El ingeniero no es el que sabe mas, sino el que encuentra las formas y personas para hacer las cosas mas fáciles...".


Última edición por cannabis68 el Lun 3 Mayo 2010 - 21:02, editado 2 veces
cannabis68
cannabis68
Participante
Participante

Mensajes : 15
Fecha de inscripción : 26/04/2010

Volver arriba Ir abajo

Empezar a programar con SDCC y Piklab desde cero Empty Re: Empezar a programar con SDCC y Piklab desde cero

Mensaje por Risanti Lun 3 Mayo 2010 - 20:10

Te felicito por este resumen... aqui en linux hay bastantes herramientas para hacer proyectos con microcontroladores, aunque la informacion en ciertos momentos no es mucha, pero poco a poco eso esta cambiando. Aunque nuestra comunidad en pequeña aun , ira creciendo. Con cosas como esta..

Lo unico que en vez de kicad es Piklab?? cierto..

NOTA: Es posible compilar correctamente tan solo usando el SDCC con
lineas de comandos de la terminal de Linux, aunque por comodidad lo
aremos con Kicad.


El tema de proteus esta bien bueno, yo anteriormente usaba virtual box, para ejecutar win xp, pero con este tema de wine que soporta esta version de proteus (otras versiones habia probado pero no resultaba). ayudara bastante a mis proyectos..
atte.
RiSanti
Risanti
Risanti
Asiduo del Foro
Asiduo del Foro

Mensajes : 172
Fecha de inscripción : 07/12/2008
Edad : 39
Localización : La Serena Chile

https://www.facebook.com/risanti.electronica

Volver arriba Ir abajo

Empezar a programar con SDCC y Piklab desde cero Empty Re: Empezar a programar con SDCC y Piklab desde cero

Mensaje por cannabis68 Lun 3 Mayo 2010 - 20:58

xD
Gracias por la correcion, ya esta modificado, uso mucho tambien el Kicad por eso lo traia en la mente en ese momento al hacer el post...
cannabis68
cannabis68
Participante
Participante

Mensajes : 15
Fecha de inscripción : 26/04/2010

Volver arriba Ir abajo

Empezar a programar con SDCC y Piklab desde cero Empty Re: Empezar a programar con SDCC y Piklab desde cero

Mensaje por Invitado Vie 28 Mayo 2010 - 16:25

Hola, que tal, tengo un problema con piklab y gputils.

Tengo creado el proyecto y el archivo .asm, uso programador serie y funciona, puedo borrar micros y leerlos pero no puedo grabarle el .hex, ya que nunca lo crea piklab.

En compilador puse gputils... la verdad que creo que es un error o algo me está faltando en piklab, lo raro es que instalando solo piklab ya deberia funcionar pues trae todo lo necesario para programar en assembler.

Ya intenté reinstalarlo desde synaptic y nada...

alguien sabe algo?

Gracias

Invitado
Invitado


Volver arriba Ir abajo

Empezar a programar con SDCC y Piklab desde cero Empty Ayuda

Mensaje por thinkerdafy Mar 1 Jun 2010 - 18:27

Saludos muchachos, soy nuevo en esto del software libre tengo en mi laptop ubuntu y hasta ahora le instale el piklab con el compilador SDCC, pero la vedad no comprendo mucho la sintaxis de este compilador y pues me gusta por el hecho de que es libre, quisiera que me ayudaran con algun tutorial de piklab con el compilador SDCC para aprender mejor esto y pasarme de lleno al software libre.....
Gracias muchachos espero me puedan colaborar y mucho saludos a todos desde Colombia............

thinkerdafy
Nuevo Usuario
Nuevo Usuario

Mensajes : 5
Fecha de inscripción : 01/06/2010

Volver arriba Ir abajo

Empezar a programar con SDCC y Piklab desde cero Empty Re: Empezar a programar con SDCC y Piklab desde cero

Mensaje por Invitado Mar 1 Jun 2010 - 19:32

thinkerdafy escribió:Saludos muchachos, soy nuevo en esto del software libre tengo en mi laptop ubuntu y hasta ahora le instale el piklab con el compilador SDCC, pero la vedad no comprendo mucho la sintaxis de este compilador y pues me gusta por el hecho de que es libre, quisiera que me ayudaran con algun tutorial de piklab con el compilador SDCC para aprender mejor esto y pasarme de lleno al software libre.....
Gracias muchachos espero me puedan colaborar y mucho saludos a todos desde Colombia............

Hola, soy de argentina. Yo sé programar en assembler o ensamblador, es el lenguaje que se usa en el mplab ( el programa del fabricante de pics).

SDCC es un compilador para hacer ficheros .hex a partir del lenguaje C.

Algo de C he aprendido pero muy poco como para ayudarte en ese sentido, creo que tienes que aprender o buscar manuales de C.

Igualmente me gustaria si alguien con mas experiencia en SDCC lee esto, nos diga como hacer para entrar mas en el tema de SDCC.

Saludos !

Invitado
Invitado


Volver arriba Ir abajo

Empezar a programar con SDCC y Piklab desde cero Empty Re: Empezar a programar con SDCC y Piklab desde cero

Mensaje por cannabis68 Miér 2 Jun 2010 - 2:02

Mira SDCC es un compilador en lenguaje "C", asi como muchos otros compiladores, su sintaxis es muy similar, para aprender a programar PIC's en lenguaje "C" hay que aprender lo basico de este lenguaje, como son las directivas, funciones, etc. Yo en lo personal aprendí usando el CCS y después se me hizo mas fácil. Aquí hay un tuto que tenia hace tiempo, hay una parte que viene un recordatorio rápido de "C" en PIC's échenle una revisada.

curso_de_programacion_en_c_172                                                                
cannabis68
cannabis68
Participante
Participante

Mensajes : 15
Fecha de inscripción : 26/04/2010

Volver arriba Ir abajo

Empezar a programar con SDCC y Piklab desde cero Empty Re: Empezar a programar con SDCC y Piklab desde cero

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.