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

  1. Bajar el archivo .tgz del sitio de microchip
  2. 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)
  3. entrar en la carpeta descomprimida
  4. teclar la instrucción siguiente:   $make linux para compilar las fuentes para GNU/Linux
  5. ahora como super usuarios teclear (en este ejemplo hago referencia a sudo) $sudo make install
  6. Debido a problema con PK2Device.dat se va a copiar este archivo junto al ejecutable en /usr/local/bin, de la siguiente manera 
$sudo cp  PK2DeviceFile.dat /usr/local/bin

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

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

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

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

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

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.


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

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

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!!

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!!!

Pruebas casi finales, aun falta ensamblar!!

Ya casi esta listo!, bueno, ya dandole toques finales para que sea funcional mi prueba con Gambas, después de unos meses de estar trabajando con esto, pues la verdad ha sido bien satisfactorio, el ver que ya esta mas vivo el programa.

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.
Esto se puede ver claramente en la siguiente imagen

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!

Mensaje 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 Very Happy, pues ya despues de releer un buen Idea 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

sunny

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
Participante

Cantidad de envíos: 24
Fecha de inscripción: 12/04/2009
Edad: 31
Localización: Mexico


Volver arriba

comandos pk2cmd para programar pics desde linux

Respuesta enviada por el compañero Arcachofo
***************************************************************************************
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.. Smile

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, Very Happy 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
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 Very Happy Very Happy cheers

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 albino

Bueno en esta etapa, ya no se tuvo éxito Crying or Very sad Crying or Very sad

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!!!!