Blog cajón desastre (CBTis 44 / TecNM Teziutlán) https://github.com/maigke ( tiene muy poca aportación)
Mostrando entradas con la etiqueta pics. Mostrar todas las entradas
Mostrando entradas con la etiqueta pics. Mostrar todas las entradas
sábado, 12 de mayo de 2018
GitHub y algunos programas base para microcontroladores
A continuación coloco el link para mi GitHub, donde están alojados algunos de los códigos que he usado para la materia de microcontroladores en el ITS Teziutlán, todos los programas están en XC8 de Microchip y los proyectos elaborados para MPLABX v4.05, los programas se pueden compilar para los micros PIC18F420, PIC18F4450, PIC18F4520, PIC18F45K50, consulte la carpeta Mylibs en los archivos configx.h
Finalmente, la frecuencia de reloj que se usa es de 4MHz, sin utilizar el preescalamiento, para hacer uso, modifique los archivos configx.h según su conveniencia
Mi GitHub
Un abrazo y gran saludos
jueves, 12 de diciembre de 2013
Prueba programando PICs en Manjaro Linux
Estaba con la curiosidad de como funcionaria pk2cmd instalado desde las fuente en Manjaro, y he visto con agrado que si funciona muy bien, los pasos de instalación son de lo mas sencillos
Esto es para que no ocasione problemas en caso de crear un lanzador para el escritorio.
En el siguiente link se encuentra un script para que se ejecute el pk2cmd en modo grafico
http://pastebin.com/2rKyjbkr
Bien espero que este link sirva para que les de la curiosidad de programar microcontroladores PIC usando un sistema Linux y muy amigable como Manjaro.
Caracteristicas de mi box Linux
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 CPU T5300 @ 1.73GHz
stepping : 2
microcode : 0x5c
cpu MHz : 1733.000
cache size : 2048 KB
SMBIOS 2.4 present.
25 structures occupying 1385 bytes.
Table at 0x000DF010.
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Phoenix Technologies LTD
Version: 77.11
Release Date: 03/19/2007
Address: 0xE5A60
Runtime Size: 107936 bytes
ROM Size: 1024 kB
Characteristics:
ISA is supported
PCI is supported
PC Card (PCMCIA) is supported
PNP is supported
BIOS is upgradeable
BIOS shadowing is allowed
ESCD support is available
Boot from CD is supported
Selectable boot is supported
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
ACPI is supported
USB legacy is supported
Smart battery is supported
BIOS boot specification is supported
Function key-initiated network boot is supported
Targeted content distribution is supported
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: Gateway
Product Name: MX6947M
Version: 3408141R
Serial Number: T3C74B1001377
UUID: E068DDB3-DB1D-B211-8000-FE779A898FC6
Wake-up Type: Power Switch
SKU Number: Not Specified
Family: Not Specified
- Bajar el archivo .tgz del sitio de microchip
- Descomprimir el archivo en una carpeta especial (en mi caso he creado dentro de mi home una carpeta llamda opt para instalar aquellas programas que no vienen por defecto en Manjaro)
- entrar en la carpeta descomprimida
- teclar la instrucción siguiente: $make linux para compilar las fuentes para GNU/Linux
- ahora como super usuarios teclear (en este ejemplo hago referencia a sudo) $sudo make install
- Debido a problema con PK2Device.dat se va a copiar este archivo junto al ejecutable en /usr/local/bin, de la siguiente manera
Esto es para que no ocasione problemas en caso de crear un lanzador para el escritorio.
En el siguiente link se encuentra un script para que se ejecute el pk2cmd en modo grafico
http://pastebin.com/2rKyjbkr
Bien espero que este link sirva para que les de la curiosidad de programar microcontroladores PIC usando un sistema Linux y muy amigable como Manjaro.
Caracteristicas de mi box Linux
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 CPU T5300 @ 1.73GHz
stepping : 2
microcode : 0x5c
cpu MHz : 1733.000
cache size : 2048 KB
SMBIOS 2.4 present.
25 structures occupying 1385 bytes.
Table at 0x000DF010.
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Phoenix Technologies LTD
Version: 77.11
Release Date: 03/19/2007
Address: 0xE5A60
Runtime Size: 107936 bytes
ROM Size: 1024 kB
Characteristics:
ISA is supported
PCI is supported
PC Card (PCMCIA) is supported
PNP is supported
BIOS is upgradeable
BIOS shadowing is allowed
ESCD support is available
Boot from CD is supported
Selectable boot is supported
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
ACPI is supported
USB legacy is supported
Smart battery is supported
BIOS boot specification is supported
Function key-initiated network boot is supported
Targeted content distribution is supported
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: Gateway
Product Name: MX6947M
Version: 3408141R
Serial Number: T3C74B1001377
UUID: E068DDB3-DB1D-B211-8000-FE779A898FC6
Wake-up Type: Power Switch
SKU Number: Not Specified
Family: Not Specified
miércoles, 14 de diciembre de 2011
PIC18F2250 y timer 1 una propuesta para configurarlo.
bueno aquí está parte del trabajo que realicé en el año. Se esperan comentarios.
http://www.itsteziutlan.edu.mx/index.php?option=com_content&view=article&id=715:propuesta-para-la-programacion-basica-del-temporizador-1-del-microcontrolador-pic18f2550-con-el-compilador-sdcc&catid=27:artlos&Itemid=288
http://www.itsteziutlan.edu.mx/index.php?option=com_content&view=article&id=714:propuesta-para-la-configuracion-basica-del-temporizador-1-del-microcontrolador-pic18f2550&catid=27:artlos&Itemid=288
http://www.itsteziutlan.edu.mx/index.php?option=com_content&view=article&id=715:propuesta-para-la-programacion-basica-del-temporizador-1-del-microcontrolador-pic18f2550-con-el-compilador-sdcc&catid=27:artlos&Itemid=288
http://www.itsteziutlan.edu.mx/index.php?option=com_content&view=article&id=714:propuesta-para-la-configuracion-basica-del-temporizador-1-del-microcontrolador-pic18f2550&catid=27:artlos&Itemid=288
Etiquetas:
electrónica,
linux,
maigke,
mexico,
micros,
montiel,
pic18f2550,
pics,
piklab,
sdcc,
tec,
temporizado,
teziutlan
lunes, 31 de enero de 2011
Algo que escribí
Bueno aquí dejo algo que escribí en la escuela, no esta muy bien redactado, pero la idea fundamental es dar a conocer la existencia de las herramientas libres para la programación de microcontroladores PIC.
Echenle un ojito y espero sus comentarios
LINK
http://www.itsteziutlan.edu.mx/index.php?option=com_content&view=article&id=597:herramientas-libres-para-la-programacion-de-microcontroladores-pic&catid=27:artlos&Itemid=288
Echenle un ojito y espero sus comentarios
LINK
http://www.itsteziutlan.edu.mx/index.php?option=com_content&view=article&id=597:herramientas-libres-para-la-programacion-de-microcontroladores-pic&catid=27:artlos&Itemid=288
martes, 28 de diciembre de 2010
Primer concurso de proyectos con Pinguino
Gracias al OpenSourceHardware el proyecto Pinguino (Arduino-Like) basado inicialmente en microcontrolador PIC18F2550 de Microchip, el Primer concurso de proyectos basados en Pinguino, esta realizandose para participantes de habla inglesa y española.
Los premios son buenos!, y pues el objetivo inicial es darle una mayor difusión a Pinguino de Jean Pierre Mandon.
El link para ver las bases y premios es aqui
Los premios son buenos!, y pues el objetivo inicial es darle una mayor difusión a Pinguino de Jean Pierre Mandon.
El link para ver las bases y premios es aqui
sábado, 10 de julio de 2010
Control motor PaP Bipolar con CCS e "interrupcion" por USART programado en Linux
Como es sabido el uC PIC16F84A no cuenta con USART, sin embargo para controlar un motor de pasos bipolar en posición bidireccional, podemos usar un pequeño artilugio para hacer responder a una interrupcion al PIC, usando el protocolo rs232
bueno el codigo fuente es el siguiente
#include <16F84a.h>
#fuses XT,NOWDT
#use delay (clock=4000000)
//#use fixed_io(b_outputs=pin_b3)
//#use fixed_io(a_outputs=pin_a0,pin_a1,pin_a2,pin_a3)
#use rs232(xmit=PIN_B3,rcv=PIN_A4,bits=8)
//variables globales
int1 flagA=FALSE, flagB=FALSE;
int value=50;
//Interrupciones
#INT_EXT
void int_rb0(void){
char letra;
disable_interrupts(GLOBAL);
delay_ms(10);
letra=getc();
letra= toupper(letra);
switch(letra){
case 'D':printf("Derecha\r\n");
flagA=TRUE;
flagB=FALSE;
break;
case 'I':printf("Izquierda\r\n");
flagA=FALSE;
flagB=TRUE;
break;
}
enable_interrupts(GLOBAL);
}
//prototipos
void adelante(void);
void atras(void);
main(){
enable_interrupts(GLOBAL);
ext_int_edge(L_TO_H); //interrupcion en flanco de bajada
enable_interrupts(int_ext); //habilitada interrupcion Externa RB0
printf("Control de\n\r Motor de pasos Bipolar");
while(1){
if(flagA==TRUE)
adelante();
if(flagB==TRUE)
atras();
};
return 0;
}
void adelante(void){
Output_A(input_A()|0x05);
delay_ms(value);
Output_A(input_A()|0x06);
delay_ms(value);
Output_A(input_A()|0x0A);
delay_ms(value);
Output_A(input_A()|0x09);
delay_ms(value);
}
void atras(void){
Output_A(input_A()|0x09);
delay_ms(value);
Output_A(input_A()|0x0A);
delay_ms(value);
Output_A(input_A()|0x06);
delay_ms(value);
Output_A(input_A()|0x05);
delay_ms(value);
}
Aqui el circuito
bueno el codigo fuente es el siguiente
#include <16F84a.h>
#fuses XT,NOWDT
#use delay (clock=4000000)
//#use fixed_io(b_outputs=pin_b3)
//#use fixed_io(a_outputs=pin_a0,pin_a1,pin_a2,pin_a3)
#use rs232(xmit=PIN_B3,rcv=PIN_A4,bits=8)
//variables globales
int1 flagA=FALSE, flagB=FALSE;
int value=50;
//Interrupciones
#INT_EXT
void int_rb0(void){
char letra;
disable_interrupts(GLOBAL);
delay_ms(10);
letra=getc();
letra= toupper(letra);
switch(letra){
case 'D':printf("Derecha\r\n");
flagA=TRUE;
flagB=FALSE;
break;
case 'I':printf("Izquierda\r\n");
flagA=FALSE;
flagB=TRUE;
break;
}
enable_interrupts(GLOBAL);
}
//prototipos
void adelante(void);
void atras(void);
main(){
enable_interrupts(GLOBAL);
ext_int_edge(L_TO_H); //interrupcion en flanco de bajada
enable_interrupts(int_ext); //habilitada interrupcion Externa RB0
printf("Control de\n\r Motor de pasos Bipolar");
while(1){
if(flagA==TRUE)
adelante();
if(flagB==TRUE)
atras();
};
return 0;
}
void adelante(void){
Output_A(input_A()|0x05);
delay_ms(value);
Output_A(input_A()|0x06);
delay_ms(value);
Output_A(input_A()|0x0A);
delay_ms(value);
Output_A(input_A()|0x09);
delay_ms(value);
}
void atras(void){
Output_A(input_A()|0x09);
delay_ms(value);
Output_A(input_A()|0x0A);
delay_ms(value);
Output_A(input_A()|0x06);
delay_ms(value);
Output_A(input_A()|0x05);
delay_ms(value);
}
Aqui el circuito
domingo, 4 de julio de 2010
miércoles, 30 de junio de 2010
Piklab PIC18F2550 sdcc y proteus en Ubuntu 10.04
Mensaje maigke Hoy a las 5:10
Saludos amigos y compañeros del foro, esta ocasión, postearé algo que me puso a trabajar, se que hay que usar software libre, pero en ocasiones, las herramientas que tenemos, aún no están lo suficientemente maduras como para realizar ciertas simulaciones (es posible que este comentario, podría general un flame, espero que no sea el caso, gracias, no es mi intención), esto nos lleva a pasarnos al enemigo , para realizar cierto tipo de simulaciones un tanto complejas, por eso mismo, he encontrado algo muy interesante (al menos eso me parece a mi).
Programar un PIC18F2550 usando como IDE Piklab, en lenguaje C SDCC, y simular el código en Proteus, usando WineHQ, y además de eso simular paso a paso y ver el código fuente de SDCC en proteus, sin usar una máquina virtual, les dejo unas pantallas, y posteriormente subo un video con una explicacion un poco mas detallada, y las razones por las cuales estoy usando proteus.
(El codigo fuente, lo tome de uno de los temas de nuestro querido Foro, no recuerdo la liga, para enlazarlo, pero cuando la tenga, lo haré.)
Gracias
Uploaded with ImageShack.us
Uploaded with ImageShack.us
Saludos amigos y compañeros del foro, esta ocasión, postearé algo que me puso a trabajar, se que hay que usar software libre, pero en ocasiones, las herramientas que tenemos, aún no están lo suficientemente maduras como para realizar ciertas simulaciones (es posible que este comentario, podría general un flame, espero que no sea el caso, gracias, no es mi intención), esto nos lleva a pasarnos al enemigo , para realizar cierto tipo de simulaciones un tanto complejas, por eso mismo, he encontrado algo muy interesante (al menos eso me parece a mi).
Programar un PIC18F2550 usando como IDE Piklab, en lenguaje C SDCC, y simular el código en Proteus, usando WineHQ, y además de eso simular paso a paso y ver el código fuente de SDCC en proteus, sin usar una máquina virtual, les dejo unas pantallas, y posteriormente subo un video con una explicacion un poco mas detallada, y las razones por las cuales estoy usando proteus.
(El codigo fuente, lo tome de uno de los temas de nuestro querido Foro, no recuerdo la liga, para enlazarlo, pero cuando la tenga, lo haré.)
Gracias
Uploaded with ImageShack.us
Uploaded with ImageShack.us
domingo, 13 de diciembre de 2009
miércoles, 2 de diciembre de 2009
compilaKtechlabForoPicLinux
En el siguiente video veremos como se compila en Ubuntu 9.10 la aplicacion ktechlab desde el tarball, esta versión de ktechlab, que se ha denominado ktechlab-GcB, esta siendo desarrollada en el Foro -PIC Linux.
Etiquetas:
electrónica,
ktechlab,
pics
sábado, 28 de noviembre de 2009
ktechlab GCBasic sobre linux
De nuevo con ustedes, y escribiendo de rapido desde mi nuevo trabajo,:D, bien pues nadamas para postear que unos amigos del foro activo de PIC Linux, estan desarrollando un branch de buen software de simulacion de microcontroladores PIC, a los cuales ya les han agregado diversas funcionalidades y varios pic mas que son soportados, ademas de que el lenguaje basic que se utiliza para pasar de programación de diagramas de flujo, es ahora GCBasic, que en el mismo foro ha sido portado a Linux.
Se me hace una muy interesante propuesta de parte de este foro al cual pertenezco, y si alguien puede auxiliar, pues que sea bienvenido.
La pagina para descarga es la siguiente:
http://piclinux.svn.sourceforge.net/viewvc/piclinux/ktechlab-Gcb/branches/ktechlab-gcb-0.3.7-0.tar.gz?view=tar
Si quieres ver el hilo:
http://pic-linux.foroactivo.net/ktechlab-f6/ktechlab-gcb-t233.htm
La página del foro es la siguiente:
http://pic-linux.foroactivo.net/forum.htm
Se me hace una muy interesante propuesta de parte de este foro al cual pertenezco, y si alguien puede auxiliar, pues que sea bienvenido.
La pagina para descarga es la siguiente:
http://piclinux.svn.sourceforge.net/viewvc/piclinux/ktechlab-Gcb/branches/ktechlab-gcb-0.3.7-0.tar.gz?view=tar
Si quieres ver el hilo:
http://pic-linux.foroactivo.net/ktechlab-f6/ktechlab-gcb-t233.htm
La página del foro es la siguiente:
http://pic-linux.foroactivo.net/forum.htm
jueves, 12 de noviembre de 2009
Java + CCS + Proteus + servos + rs232 + compim
El siguiente post trata de como podemos programar una aplicación desarrollada en JAVA, usando la libreria RXTX para comunicarse con un microcontrolador PIC16F877 simulado en proteus a través de componente COMPIM, para controlar posiciones simples de 3 servomotores. El desarrollo es interesante, ya que además no necesitas nada de hardware con estas herramientas para hacer las pruebas. El código de la comunicación se basa en la de que se muestra en picmania de RedPic.
Cabe mencionar que el desarrollo de este pequeño proyecto fué desarrollado por mis alumnos Ismael Pérez Amaro, Alejandra Karina Rojas Guzmán y Magdalena López Tiburcio de la carrera de Ing. en Sistemas Computacionales que cursan el 7to. Semestre en el ITST. a continuación coloco el texto e imagenes que me hicieron favor de redactar, así como los links de descarga.
************************************************************************************
http://www.scribd.com/doc/22497242/InterfazSerialJAVAPROTEUS
InterfazSerialJAVAPROTEUS
Cabe mencionar que el desarrollo de este pequeño proyecto fué desarrollado por mis alumnos Ismael Pérez Amaro, Alejandra Karina Rojas Guzmán y Magdalena López Tiburcio de la carrera de Ing. en Sistemas Computacionales que cursan el 7to. Semestre en el ITST. a continuación coloco el texto e imagenes que me hicieron favor de redactar, así como los links de descarga.
************************************************************************************
http://www.scribd.com/doc/22497242/InterfazSerialJAVAPROTEUS
InterfazSerialJAVAPROTEUS
domingo, 20 de septiembre de 2009
Tlacotli aun mas pruebas
:D aqui presentando mas pruebas del trabajo con Tlacotli
Pruebas con GAMBAS y el Puerto Serie desde SSH
Buenos días!!, aqui posteando esto, pues ya finalizaron las pruebas que estaba haciendo con Gambas 2 y el puerto Serial, el día de ayer probamos la aplicacion desarrollada, en una Desktop y por medio de ssh en modo gráfico accedimos al server, desde una lap.
La respuesta del micro que esta conectado al puerto serial, responde al caracter enviado colocando en el textArea correspondiente S_1 + o S_1 - segun sea el caso de avance o retroceso en la posicion del servomotor, pero bueno ahora colocaremos el video y algunas notas que postee en el Foro de PIC Linux
Bueno aqui estan ya las correcciones
http://www.filefactory.com/file/a0a2a6h/n/mmm-testserial_0_0_5_orig_tar_gz
y bueno un video de como funciona ya este programa

Para grabar el escritorio use gtk-RecordMyDesktop y para los acercamientos use un efecto de Compiz Fusion
para convertir los videos a .AVI que genera el gtk-RecordMyDesktop use la consola con el mencoder, muy bueno, muy rápido y sencillo, el comando usado fue
mike@mike:~$ mencoder testRS232viaSSh.ogv -o testRS232viaSSh.avi -oac mp3lame -ovc lavc
Saludos!!
La respuesta del micro que esta conectado al puerto serial, responde al caracter enviado colocando en el textArea correspondiente S_1 + o S_1 - segun sea el caso de avance o retroceso en la posicion del servomotor, pero bueno ahora colocaremos el video y algunas notas que postee en el Foro de PIC Linux
Bueno aqui estan ya las correcciones
http://www.filefactory.com/file/a0a2a6h/n/mmm-testserial_0_0_5_orig_tar_gz
y bueno un video de como funciona ya este programa
Para grabar el escritorio use gtk-RecordMyDesktop y para los acercamientos use un efecto de Compiz Fusion
para convertir los videos a .AVI que genera el gtk-RecordMyDesktop use la consola con el mencoder, muy bueno, muy rápido y sencillo, el comando usado fue
mike@mike:~$ mencoder testRS232viaSSh.ogv -o testRS232viaSSh.avi -oac mp3lame -ovc lavc
Saludos!!
sábado, 12 de septiembre de 2009
Servomotor funcionando Bajo Linux
Saludos, aqui coloco el post que tengo en el foro de linux para pics y electrónica, espero les guste, cualquier comentario se los agradeceré
Bueno ya es de día!!
y por fin ha subido el video donde se muestra como podemos controlar el servomotor con Gambas usando el Puerto Serial, bueno por el momento solo es un servo, pero mas adelante colocaremos mas servos para mover un mecanismo. y bueno creo que con esto doy terminado el hilo, y en la parte de proyectos continuaré con las siguientes partes y por menores.
Aqui coloco los fuentes para instalar, solo recuerda que debes tener el runtime de Gambas 2 en tu caja Linux y la version que trabajo es 2.8 de Gambas
Download testSerial_Paquetes.tar.bz2 from FileFactory.com
El hosting tiene ads y cosillas de esas, pero como usamos linux, pues no nos preocupemos
saludos!!!
Bueno ya es de día!!
Aqui coloco los fuentes para instalar, solo recuerda que debes tener el runtime de Gambas 2 en tu caja Linux y la version que trabajo es 2.8 de Gambas
Download testSerial_Paquetes.tar.bz2 from FileFactory.com
El hosting tiene ads y cosillas de esas, pero como usamos linux, pues no nos preocupemos
saludos!!!
Etiquetas:
electrónica,
Gambas,
linux,
pics,
Serial,
servo,
servomotor,
teziutlan
Pruebas casi finales, aun falta ensamblar!!
El código, se ha quedado como se muestra, solo que hemos hecho un pequeño trucaje al servo que mostre en fotos anteriores, puesto que se transporto el potenciometro del servo que lleva interno, a una parte externa, de estar forma se hizo, debido a que el mecanismo de gusano sinfin + corona, exigia dos cosas:
- El servo pudiera dar vueltas completas y varías, debido a la relacion que hay entre los engranajes
- El posicionamiento del eje deberia ser exacto, con respecto a la horizontal que forma con la base.
Lamentablemente, la corona que va con el gusano sin fin, al estar hecha de aluminio, y soportar una gran fuerza, pues, los dientes sufrieron los estragos, desgastandose, me comenta, Ruben, que sería mejor que dichos engranes fueran hechos de bronce, espero que consigamos una pieza pronto
El codigo fuente, hasta el momento, es el que presente en post anteriores, y el programa lo deje trabajando un buen de horas solo conectado con la tarjeta de control de servomotores y funciona de forma muy adecuada, detalles aun hay muchos, sin embargo, prodria decir, ¡Ya casí esta listo!
Falta el video donde se ve como se mueve el servo con el slider del GUI desarrollado, en este momento esta de subida.
jueves, 13 de agosto de 2009
Por fin le entendi a lo del toolchain de piklab para integracion con sdcc
Por fin!
maigke el Sáb 8 Ago 2009 - 8:32
Bueno despues de dejar esto de la integracion de piklab con el pickit2 y sdcc que tengo en casa
, pues ya despues de releer un buen
y bien debido a que soy lenton, pues ya comprendí!!
Lo unico que hize despues de volver sobre mis pasos, y encontrarme con los mismos problemas de hace un tiempo, decidí, reiniciar todo de nuevo. y lo único que agregue en Proyecto- Oopciones de Proyecto -- Toolchain --- Linker -- Camiarlo a personalizado, afortunadamente me quedaba con las opciones por defecto, bueno pues me coloque sobre la línea de texto y agregue la línea
libc18f.lib
y presione el boton de Add.
esto me dio el siguiente resultado!
sdcc -mpic16 -p18f2550 -V --debug -I/home/mike/PIC/reloj_test/ -c reloj.c
+ "/usr/bin/sdcpp" -nostdinc -Wall -std=c99 -I"/home/mike/PIC/reloj_test/" -Dpic18f2550 -D__18f2550 -DSTACK_MODEL_SMALL -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=280 -DSDCC_REVISION=5117 -DSDCC_pic16 -D__pic16 -I"/usr/bin/../share/sdcc/include/pic16" -I"/usr/share/sdcc/include/pic16" -I"/home/mike/PIC/reloj_test/" "reloj.c"
sdcc -mpic16 -p18f2550 -V --debug -Wl-c -Wl-m -I/home/mike/PIC/reloj_test/ -oreloj.hex reloj.o libc18f.lib
using default linker script "/usr/share/gputils/lkr/18f2550.lkr"
+ "/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib/pic16" -I"/usr/share/sdcc/lib/pic16" -c -m -w -r -o reloj.hex reloj.o crt0i.o libc18f.lib pic18f2550.lib libsdcc.lib
*** Éxito ***
Parsing COFF file: /home/mike/PIC/reloj_test/reloj.cof
Device name: "18F2550"
Otro error que habia cometido, es que en la parte izquierda en la barra de proyecto, agregue el codigo objeto generado cuando unicamente compile el archivo, en este caso se llama reloj.o.
Muchas gracias espero que a alguien mas le sea de ayuda

Ahora seguiremos con las lecturas de los demas post para el echar a andar el pickit2 en piklab
***************************************************************************************************************
Gracias a todos ya he podido hechar a andar mi programador pickit2 con piklab!!
programando en sdcc, bueno pues que sucedia, no tenia los devs del la libreria libusb, por eso mismo tenia problemas para instalar el pk2cmd
Hecho eso, de acuerdo a Risanti http://pic-linux.foroactivo.net/piklab-f3/pickit-2-firmware-1x-en-piklab-t87.htm?highlight=piklab , tenia que solo hacer un
$sudo make install, y bueno de cualquier forma modifique las variables de ambiente en el .bashrc, aunque creo que esta demas.
al igual, como indica Risanti,
Mis resultados obtenidos ya por el piklab fueron estos
Conectando Firmware PICkit2 1.x en Puerto USB con el dispositivo 18F2550...
Versión de firmware es 1.20.0
set Vdd = 5 V and Vpp = 12 V
Establecer destino auto alimentado: false
Target Vdd = 4.99519 V
Target Vpp = 11.924 V
Conectado.
Enter normal mode
Already in requested mode.
Id leída: 18F2550 (rev. 5)
Programando memoria de dispositivo...
protected: code=false data=false
Borrando dispositivo
Escribir memoria: Memoria de código
start=0x000000 nbWords=0x004000 total=0x004000 force=false varOffset=false varSize=false
Verificar memoria: Memoria de código
start=0x000000 nbWords=0x004000 total=0x004000 force=false varOffset=false varSize=false
Escribir memoria: Datos EEPROM
Verificar memoria: Datos EEPROM
Escribir memoria: User IDs
Verificar memoria: User IDs
Escribir memoria: Bits de configuración
Verificar memoria: Bits de configuración
Programación exitosa.
Lo unico que hize despues de volver sobre mis pasos, y encontrarme con los mismos problemas de hace un tiempo, decidí, reiniciar todo de nuevo. y lo único que agregue en Proyecto- Oopciones de Proyecto -- Toolchain --- Linker -- Camiarlo a personalizado, afortunadamente me quedaba con las opciones por defecto, bueno pues me coloque sobre la línea de texto y agregue la línea
libc18f.lib
y presione el boton de Add.
esto me dio el siguiente resultado!
sdcc -mpic16 -p18f2550 -V --debug -I/home/mike/PIC/reloj_test/ -c reloj.c
+ "/usr/bin/sdcpp" -nostdinc -Wall -std=c99 -I"/home/mike/PIC/reloj_test/" -Dpic18f2550 -D__18f2550 -DSTACK_MODEL_SMALL -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=280 -DSDCC_REVISION=5117 -DSDCC_pic16 -D__pic16 -I"/usr/bin/../share/sdcc/include/pic16" -I"/usr/share/sdcc/include/pic16" -I"/home/mike/PIC/reloj_test/" "reloj.c"
sdcc -mpic16 -p18f2550 -V --debug -Wl-c -Wl-m -I/home/mike/PIC/reloj_test/ -oreloj.hex reloj.o libc18f.lib
using default linker script "/usr/share/gputils/lkr/18f2550.lkr"
+ "/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib/pic16" -I"/usr/share/sdcc/lib/pic16" -c -m -w -r -o reloj.hex reloj.o crt0i.o libc18f.lib pic18f2550.lib libsdcc.lib
*** Éxito ***
Parsing COFF file: /home/mike/PIC/reloj_test/reloj.cof
Device name: "18F2550"
Otro error que habia cometido, es que en la parte izquierda en la barra de proyecto, agregue el codigo objeto generado cuando unicamente compile el archivo, en este caso se llama reloj.o.
Muchas gracias espero que a alguien mas le sea de ayuda
Ahora seguiremos con las lecturas de los demas post para el echar a andar el pickit2 en piklab
***************************************************************************************************************
Gracias a todos ya he podido hechar a andar mi programador pickit2 con piklab!!
programando en sdcc, bueno pues que sucedia, no tenia los devs del la libreria libusb, por eso mismo tenia problemas para instalar el pk2cmd
Hecho eso, de acuerdo a Risanti http://pic-linux.foroactivo.net/piklab-f3/pickit-2-firmware-1x-en-piklab-t87.htm?highlight=piklab , tenia que solo hacer un
$sudo make install, y bueno de cualquier forma modifique las variables de ambiente en el .bashrc, aunque creo que esta demas.
al igual, como indica Risanti,
Risanti escribió:Hola a todos..
Lo siguiente es cambiar el firmware del pickit 2 para lo cual podemos descargar las distintas versiones desde
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1960
además con el comando pk2cmd -d PK2V012000.hex 'actualizamos firmware tiene que ser 1.20
En piklab configuramos el programador FIRMWARE PICKIT 2 1.X .....comprobamos la conexion que este correcto.. y listo
Aunque
la he probado con algunos pic funciona bien.. no se si sera un problema
de la version 1.20 del pickit pero no puedo programar pic 16F88. pero
otros los pogramos sin problemas...
Para programar 16F88 estoy usando pickit con version 2.32 conjuntamente con pikdev http://pic-linux.foroactivo.net/otros-f19/pickit-2-trabajando-pikdev-v-110-t86.htm#199
Atte.
Risanti
Mis resultados obtenidos ya por el piklab fueron estos
Conectando Firmware PICkit2 1.x en Puerto USB con el dispositivo 18F2550...
Versión de firmware es 1.20.0
set Vdd = 5 V and Vpp = 12 V
Establecer destino auto alimentado: false
Target Vdd = 4.99519 V
Target Vpp = 11.924 V
Conectado.
Enter normal mode
Already in requested mode.
Id leída: 18F2550 (rev. 5)
Programando memoria de dispositivo...
protected: code=false data=false
Borrando dispositivo
Escribir memoria: Memoria de código
start=0x000000 nbWords=0x004000 total=0x004000 force=false varOffset=false varSize=false
Verificar memoria: Memoria de código
start=0x000000 nbWords=0x004000 total=0x004000 force=false varOffset=false varSize=false
Escribir memoria: Datos EEPROM
Verificar memoria: Datos EEPROM
Escribir memoria: User IDs
Verificar memoria: User IDs
Escribir memoria: Bits de configuración
Verificar memoria: Bits de configuración
Programación exitosa.
maigke- Participante
- Cantidad de envíos: 24
Fecha de inscripción: 12/04/2009
Edad: 31
Localización: Mexico -
comandos pk2cmd para programar pics desde linux
Respuesta enviada por el compañero Arcachofo
***************************************************************************************
Hay varias funciones de delay, delay1ktcy(); es 1kilociclos, osea 1000 ciclos, pero hay otras, creo que 1tcy es un ciclo, 10tcy 10 ciclos y así, aunque nosé si estas que he mencionado existen, pero la lógica es esa.
Respecto a los comandos de pk2cmd para "custom programmer" en Piklab, partimos de la base de que tienes pk2cmd instalado y funcionando; los comandos son estos:
Read:
pk2cmd -P -GFtemp.hex
Erase:
pk2cmd -P -E
Program:
pk2cmd -P -M -Fnombre_archivo.hex
Verify:
pk2cmd -P -Y -Fnombre_archivo.hex
Blank:
pk2cmd -P -C
Run:
pk2cmd -P -W -R
Stop:
pk2cmd -P
Donde pone "nombre_archivo.hex" hay que poner el nombre del archivo a grabar o verificar, y esto es un problema, porque hay que cambiarlo cada vez que se graba o verifica un archivo distinto, no he encontrado la manera de automatizar esto, las variables de Piklab tipo: %I no funcionan...
Esto es un problema... si alguien sabe como solucionarlo que lo comparta porfavor..
Saludos.
***************************************************************************************
Hay algo que no entiendo, y es por que hay que poner un 1 como argumento de la funcion del 1000 ciclos de retardo???
Hay varias funciones de delay, delay1ktcy(); es 1kilociclos, osea 1000 ciclos, pero hay otras, creo que 1tcy es un ciclo, 10tcy 10 ciclos y así, aunque nosé si estas que he mencionado existen, pero la lógica es esa.
Respecto a los comandos de pk2cmd para "custom programmer" en Piklab, partimos de la base de que tienes pk2cmd instalado y funcionando; los comandos son estos:
Read:
pk2cmd -P -GFtemp.hex
Erase:
pk2cmd -P -E
Program:
pk2cmd -P -M -Fnombre_archivo.hex
Verify:
pk2cmd -P -Y -Fnombre_archivo.hex
Blank:
pk2cmd -P -C
Run:
pk2cmd -P -W -R
Stop:
pk2cmd -P
Donde pone "nombre_archivo.hex" hay que poner el nombre del archivo a grabar o verificar, y esto es un problema, porque hay que cambiarlo cada vez que se graba o verifica un archivo distinto, no he encontrado la manera de automatizar esto, las variables de Piklab tipo: %I no funcionan...
Esto es un problema... si alguien sabe como solucionarlo que lo comparta porfavor..
Saludos.
Duda al modificar el toolchain de sdcc
Este es otro post que coloque en el Foro activo de herramientas Linux para programacion de PICS
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Saludos a toda la comunidad, me presento y agradezco de antemano los esfuerzos que son realizados por la comunidad para manejar micros desde totalmente S.L. bounce
Bien mi duda es la siguiente, estoy comenzando a trabajar con un PIC18F2550, con piklab y un programador Pickit2, pues bien la comunicación entre el piklab y el pickit2 esta muy bien y reconoce y lee muy bien el micro que tengo, ahora bien, leyendo en el foro, me encontre con el caso siguiente
Problema con la libreria delay en los 18F
Fernan el Vie 9 Ene 2009 - 19:38Si uso la libreria Include con el 18f4520 :
#include "pic18f4520.h"
#include "delay.h"
// initialize board
void init_board(void) {
ADCON1=0x7; // PORTA used for digital I/O
TRISBbits.TRISB0=0; // configure PORTB0 for output (right LED)
TRISBbits.TRISB1=0; // configure PORTB1 for output (right LED) ....
bien vi que habia un problema con la libreria libc18f.lib, el compañero arcachofo le recomendo lo siguiente
De todas formas fíjate en la linea de ejecución del linker.. creo que
los delays estan en libc18f.lib, si no aparece quizás tengas que
añadirla para que la incluya, para esto en: opciones del proyento -
toolchain -linker, tendrías que añadir una linea para que incluya
libc18f.lib
Bien pues entre ahi, y en efecto, el toolchain del linker permite dos opciones una automatica, la cual permite añadir carpetas y una que es personalizada; en el caso de la personalizada la linea de comandos del piklab me pone la siguiente línea
-m%FAMILY -%DEVICE -V --debug -Wl-c -Wl-m $LKR(-Wl-s%LKR) -I$(SRCPATH) -o%O %OBJS %LIBS
de lo que vi en la ayuda, los parametros que se pasan son la familia, el dispositivo a usar, el linker a usar, incluir el lugar del codigo fuente dar las salidas, los archivos objeto y las librerias extras Rolling Eyes
Sin embargo al dar clik en Construir- compilar archivo lo que obtengo es lo siguiente
sdcc -mpic16 -p18f2550 -V --debug -I/home/mike/PIC/reloj_test/ -c reloj.c
reloj.asm:20: error: Symbol not previously defined (_delay1kcy).
reloj.asm:311: error: Symbol not previously defined (_delay1kcy).
reloj.asm:311: error: Symbol not previously defined (_delay1kcy).
+ "/usr/bin/sdcpp" -nostdinc -Wall -std=c99 -I"/home/mike/PIC/reloj_test/" -Dpic18f2550 -D__18f2550 -DSTACK_MODEL_SMALL -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=280 -DSDCC_REVISION=5117 -DSDCC_pic16 -D__pic16 -I"/usr/bin/../share/sdcc/include/pic16" -I"/usr/share/sdcc/include/pic16" -I"/home/mike/PIC/reloj_test/" "reloj.c"
reloj.c:41: warning 112: function 'delay1kcy' implicit declaration
reloj.c:41: warning 84: 'auto' variable 'delay1kcy' may be used before initialization
reloj.c:41: warning 84: 'auto' variable 'delay1kcy' may be used before initialization
+ "/usr/bin/gpasm" -DSDCC_MODEL_SMALL -Dpic18f2550 -D__18F2550 -DSTACK_MODEL_SMALL -g -c "reloj.asm" -o "reloj.o"
+ "/usr/bin/gpasm" -DSDCC_MODEL_SMALL -Dpic18f2550 -D__18F2550 -DSTACK_MODEL_SMALL -g -c "reloj.asm" -o "reloj.o" returned errorcode 256
*** Salida con estado: 1 ***
confused confused confused confused confused
segui leyendo el hilo y pues vi que habria que integrar en la linea de comando del toolchain a la libreria a utilizar, de acuerdo a arcahofo y continuando con la lectura, nuestro compañero Fernan logro echar a funcionar su programa, y ya que ellos modificaron el toolchain, pues fui de nuevo a las opciones de proyecto del piklab y esta vez elegí la opción personalizada para el toolchain.
"/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib/pic16"
-I"/usr/share/sdcc/lib/pic16" -c -m -w -r -o led.hex led.o crt0i.o
libc18f.lib pic18f4520.lib libsdcc.lib
modificandola por esta, que no se si este bien, bueno de hecho no esta bien por que los resultados obtenidos al construir el proyecto, no fueron satisfactorios Sad
"/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib/pic16"
-I"/usr/share/sdcc/lib/pic16" -c -m -w -r -o%O %OBJS
libc18f.lib pic18f2550.lib libsdcc.lib
Sin embargo el resultado que obtengo es el mismo
sdcc -mpic16 -p18f2550 -V --debug -I/home/mike/PIC/reloj_test/ -c reloj.c
reloj.c:41: warning 112: function 'delay1kcy' implicit declaration
reloj.c:41: warning 84: 'auto' variable 'delay1kcy' may be used before initialization
reloj.c:41: warning 84: 'auto' variable 'delay1kcy' may be used before initialization
reloj.asm:20: error: Symbol not previously defined (_delay1kcy).
reloj.asm:311: error: Symbol not previously defined (_delay1kcy).
reloj.asm:311: error: Symbol not previously defined (_delay1kcy).
+ "/usr/bin/sdcpp" -nostdinc -Wall -std=c99 -I"/home/mike/PIC/reloj_test/" -Dpic18f2550 -D__18f2550 -DSTACK_MODEL_SMALL -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=280 -DSDCC_REVISION=5117 -DSDCC_pic16 -D__pic16 -I"/usr/bin/../share/sdcc/include/pic16" -I"/usr/share/sdcc/include/pic16" -I"/home/mike/PIC/reloj_test/" "reloj.c"
+ "/usr/bin/gpasm" -DSDCC_MODEL_SMALL -Dpic18f2550 -D__18F2550 -DSTACK_MODEL_SMALL -g -c "reloj.asm" -o "reloj.o"
+ "/usr/bin/gpasm" -DSDCC_MODEL_SMALL -Dpic18f2550 -D__18F2550 -DSTACK_MODEL_SMALL -g -c "reloj.asm" -o "reloj.o" returned errorcode 256
*** Salida con estado: 1 ***
Bien el sistema que tengo actualmente es ubuntu 9.04, el piklab que tengo es 0.15.4, es sdcc es el que viene por defecto en ubuntu
sdcc -v
SDCC : avr/pic16/pic14/xa51 2.8.0 #5117 (Jun 2 2008) (UNIX)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Saludos, bien pues siguiendo con esto,
segui con la investigación, y aún no me es posible echar a andar el problema que tengo, sin embargo en la red me encontre la siguiente pagina,AQUI y en esta da una explicacion buena sobre sdcc y propone un ejemplo sencillo para un PIC18F452, y bueno supongo que ya tiene mucho tiempo, puesto que hace un uso de la captura de un archivo ctr0.o y luego hay que implementar un make file, esta paso a paso. pero bueno, el caso es que probe este código para el micro que estoy usando y quedo el código de la siguiente manera
Lo curioso es que deje las opciones que por defecto trae el piklab y pues lo compilo bien

ahora estoy en las pruebas de quemado y probar este pic
Bueno en esta etapa, ya no se tuvo éxito

Conectando Firmware PICkit2 2.x en Puerto USB con el dispositivo 18F2550...
Versión de firmware es 2.32.0
La versión de firmware (2.32.0) es más alta que la versión probada con Piklab (2.10.0). Podría experimentar problemas.
Read id for family 16X: 0x0
Read id for family 18F: 0x1246
Id leída: 18F2550 (rev. 6)
Establecer destino auto alimentado: true
Target Vdd = 4.99512 V
Target Vpp = 7.1042 V
Conectado.
Enter normal mode
Already in requested mode.
Programando memoria de dispositivo...
protected: code=false data=false
Borrando dispositivo
Escribir memoria: Memoria de código
start=0x000000 nbWords=0x004000 total=0x004000 force=false varOffset=false varSize=false
Verificar memoria: Memoria de código
start=0x000000 nbWords=0x004000 total=0x004000 force=false varOffset=false varSize=false
Memoria de dispositivo no coincide con archivo hex (en Memoria de código en dirección 0x000000: leído 0x000E esperando 0xEFE6).
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Saludos a toda la comunidad, me presento y agradezco de antemano los esfuerzos que son realizados por la comunidad para manejar micros desde totalmente S.L. bounce
Bien mi duda es la siguiente, estoy comenzando a trabajar con un PIC18F2550, con piklab y un programador Pickit2, pues bien la comunicación entre el piklab y el pickit2 esta muy bien y reconoce y lee muy bien el micro que tengo, ahora bien, leyendo en el foro, me encontre con el caso siguiente
Problema con la libreria delay en los 18F
Fernan el Vie 9 Ene 2009 - 19:38Si uso la libreria Include con el 18f4520 :
#include "pic18f4520.h"
#include "delay.h"
// initialize board
void init_board(void) {
ADCON1=0x7; // PORTA used for digital I/O
TRISBbits.TRISB0=0; // configure PORTB0 for output (right LED)
TRISBbits.TRISB1=0; // configure PORTB1 for output (right LED) ....
bien vi que habia un problema con la libreria libc18f.lib, el compañero arcachofo le recomendo lo siguiente
De todas formas fíjate en la linea de ejecución del linker.. creo que
los delays estan en libc18f.lib, si no aparece quizás tengas que
añadirla para que la incluya, para esto en: opciones del proyento -
toolchain -linker, tendrías que añadir una linea para que incluya
libc18f.lib
Bien pues entre ahi, y en efecto, el toolchain del linker permite dos opciones una automatica, la cual permite añadir carpetas y una que es personalizada; en el caso de la personalizada la linea de comandos del piklab me pone la siguiente línea
-m%FAMILY -%DEVICE -V --debug -Wl-c -Wl-m $LKR(-Wl-s%LKR) -I$(SRCPATH) -o%O %OBJS %LIBS
de lo que vi en la ayuda, los parametros que se pasan son la familia, el dispositivo a usar, el linker a usar, incluir el lugar del codigo fuente dar las salidas, los archivos objeto y las librerias extras Rolling Eyes
Sin embargo al dar clik en Construir- compilar archivo lo que obtengo es lo siguiente
sdcc -mpic16 -p18f2550 -V --debug -I/home/mike/PIC/reloj_test/ -c reloj.c
reloj.asm:20: error: Symbol not previously defined (_delay1kcy).
reloj.asm:311: error: Symbol not previously defined (_delay1kcy).
reloj.asm:311: error: Symbol not previously defined (_delay1kcy).
+ "/usr/bin/sdcpp" -nostdinc -Wall -std=c99 -I"/home/mike/PIC/reloj_test/" -Dpic18f2550 -D__18f2550 -DSTACK_MODEL_SMALL -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=280 -DSDCC_REVISION=5117 -DSDCC_pic16 -D__pic16 -I"/usr/bin/../share/sdcc/include/pic16" -I"/usr/share/sdcc/include/pic16" -I"/home/mike/PIC/reloj_test/" "reloj.c"
reloj.c:41: warning 112: function 'delay1kcy' implicit declaration
reloj.c:41: warning 84: 'auto' variable 'delay1kcy' may be used before initialization
reloj.c:41: warning 84: 'auto' variable 'delay1kcy' may be used before initialization
+ "/usr/bin/gpasm" -DSDCC_MODEL_SMALL -Dpic18f2550 -D__18F2550 -DSTACK_MODEL_SMALL -g -c "reloj.asm" -o "reloj.o"
+ "/usr/bin/gpasm" -DSDCC_MODEL_SMALL -Dpic18f2550 -D__18F2550 -DSTACK_MODEL_SMALL -g -c "reloj.asm" -o "reloj.o" returned errorcode 256
*** Salida con estado: 1 ***
confused confused confused confused confused
segui leyendo el hilo y pues vi que habria que integrar en la linea de comando del toolchain a la libreria a utilizar, de acuerdo a arcahofo y continuando con la lectura, nuestro compañero Fernan logro echar a funcionar su programa, y ya que ellos modificaron el toolchain, pues fui de nuevo a las opciones de proyecto del piklab y esta vez elegí la opción personalizada para el toolchain.
"/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib/pic16"
-I"/usr/share/sdcc/lib/pic16" -c -m -w -r -o led.hex led.o crt0i.o
libc18f.lib pic18f4520.lib libsdcc.lib
modificandola por esta, que no se si este bien, bueno de hecho no esta bien por que los resultados obtenidos al construir el proyecto, no fueron satisfactorios Sad
"/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib/pic16"
-I"/usr/share/sdcc/lib/pic16" -c -m -w -r -o%O %OBJS
libc18f.lib pic18f2550.lib libsdcc.lib
Sin embargo el resultado que obtengo es el mismo
sdcc -mpic16 -p18f2550 -V --debug -I/home/mike/PIC/reloj_test/ -c reloj.c
reloj.c:41: warning 112: function 'delay1kcy' implicit declaration
reloj.c:41: warning 84: 'auto' variable 'delay1kcy' may be used before initialization
reloj.c:41: warning 84: 'auto' variable 'delay1kcy' may be used before initialization
reloj.asm:20: error: Symbol not previously defined (_delay1kcy).
reloj.asm:311: error: Symbol not previously defined (_delay1kcy).
reloj.asm:311: error: Symbol not previously defined (_delay1kcy).
+ "/usr/bin/sdcpp" -nostdinc -Wall -std=c99 -I"/home/mike/PIC/reloj_test/" -Dpic18f2550 -D__18f2550 -DSTACK_MODEL_SMALL -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=280 -DSDCC_REVISION=5117 -DSDCC_pic16 -D__pic16 -I"/usr/bin/../share/sdcc/include/pic16" -I"/usr/share/sdcc/include/pic16" -I"/home/mike/PIC/reloj_test/" "reloj.c"
+ "/usr/bin/gpasm" -DSDCC_MODEL_SMALL -Dpic18f2550 -D__18F2550 -DSTACK_MODEL_SMALL -g -c "reloj.asm" -o "reloj.o"
+ "/usr/bin/gpasm" -DSDCC_MODEL_SMALL -Dpic18f2550 -D__18F2550 -DSTACK_MODEL_SMALL -g -c "reloj.asm" -o "reloj.o" returned errorcode 256
*** Salida con estado: 1 ***
Bien el sistema que tengo actualmente es ubuntu 9.04, el piklab que tengo es 0.15.4, es sdcc es el que viene por defecto en ubuntu
sdcc -v
SDCC : avr/pic16/pic14/xa51 2.8.0 #5117 (Jun 2 2008) (UNIX)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Saludos, bien pues siguiendo con esto,
- Código:
//hello.c
// fuente: http://www.freenet.org.nz/sdcc/
//
// Este es un pequeño programa que parpadea un led
//Configuracion
//-----------------------------
//Cambia si tienes otro pin diferente a RA1
#include
#ifndef LED_TRIS
#define LED_TRIS TRISAbits.TRISA1
#endif
#ifndef LED_PIN
#define LED_PIN LATAbits.LATA1
#endif
//El siguiente include, jala a los correctos registros
//del archivo de definiciones
#include
//-------------------------------
//Una función de retardo simple
void delay_ms(long ms){
long i;
while(ms--){
for(i=0;i<330;i++)
;
}
}
//Nuestro punto de entrada
void main(void){
//poniendo como salida
ADCON1=0x07; // El puerto A se usa como I/O digital
LED_TRIS =0;
//generando un loop infinito
for(;;){
LED_PIN=0;
delay_ms(250);
LED_PIN=1;
delay_ms(250);
}
}
Lo curioso es que deje las opciones que por defecto trae el piklab y pues lo compilo bien
sdcc -mpic16 -p18f2550 -V --debug -I/home/mike/PIC/hola_mundo/ -c led.c
+ "/usr/bin/sdcpp" -nostdinc -Wall -std=c99 -I"/home/mike/PIC/hola_mundo/" -Dpic18f2550 -D__18f2550 -DSTACK_MODEL_SMALL -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=280 -DSDCC_REVISION=5117 -DSDCC_pic16 -D__pic16 -I"/usr/bin/../share/sdcc/include/pic16" -I"/usr/share/sdcc/include/pic16" -I"/home/mike/PIC/hola_mundo/" "led.c"
sdcc -mpic16 -p18f2550 -V --debug -Wl-c -Wl-m -I/home/mike/PIC/hola_mundo/ -ohola_mundo.hex led.o
using default linker script "/usr/share/gputils/lkr/18f2550.lkr"
+ "/usr/bin/gplink" -I"/usr/bin/../share/sdcc/lib/pic16" -I"/usr/share/sdcc/lib/pic16" -c -m -w -r -o hola_mundo.hex led.o crt0i.o pic18f2550.lib libsdcc.lib
*** Éxito ***
Parsing COFF file: /home/mike/PIC/hola_mundo/hola_mundo.cof
Device name: "18F2550"
ahora estoy en las pruebas de quemado y probar este pic
Bueno en esta etapa, ya no se tuvo éxito
Conectando Firmware PICkit2 2.x en Puerto USB con el dispositivo 18F2550...
Versión de firmware es 2.32.0
La versión de firmware (2.32.0) es más alta que la versión probada con Piklab (2.10.0). Podría experimentar problemas.
Read id for family 16X: 0x0
Read id for family 18F: 0x1246
Id leída: 18F2550 (rev. 6)
Establecer destino auto alimentado: true
Target Vdd = 4.99512 V
Target Vpp = 7.1042 V
Conectado.
Enter normal mode
Already in requested mode.
Programando memoria de dispositivo...
protected: code=false data=false
Borrando dispositivo
Escribir memoria: Memoria de código
start=0x000000 nbWords=0x004000 total=0x004000 force=false varOffset=false varSize=false
Verificar memoria: Memoria de código
start=0x000000 nbWords=0x004000 total=0x004000 force=false varOffset=false varSize=false
Memoria de dispositivo no coincide con archivo hex (en Memoria de código en dirección 0x000000: leído 0x000E esperando 0xEFE6).
sábado, 8 de agosto de 2009
Agradecimiento
Bueno esta entrada es para agradecer a toda la comunidad, ya que gracias a ellos, hemos aprendido mucho, han habido muchos topes de cabeza, lo seguirá habiendo, pero lo importante es no dejarse vencer, entre los foros qu quiero agradecer es a
PIC LINUX foro de debate y recursos compartidos
Foro TODO PICS
UCONTROL
JVMBOTS
Ubuntulife
GNUEletronica
El blog de Maverick
MicroPIC
Taringa (O_O)!!!
y a mis alumnos, que me han forjado a superarme cada día mas, para no caer en el obsoletismo
GRACIAS MIL!!!!
PIC LINUX foro de debate y recursos compartidos
Foro TODO PICS
UCONTROL
JVMBOTS
Ubuntulife
GNUEletronica
El blog de Maverick
MicroPIC
Taringa (O_O)!!!
y a mis alumnos, que me han forjado a superarme cada día mas, para no caer en el obsoletismo
GRACIAS MIL!!!!
Suscribirse a:
Entradas (Atom)

