Compilador Basic libre para PIC: GCBASIC
+2
digigalos
Pikitin
6 participantes
Página 1 de 1.
Compilador Basic libre para PIC: GCBASIC
Buenas noticias para los aficionados a programar en basic, no tenía noticias de esto, pero existe un compilador basic para PIC de código abierto, en principio está orientado a windos, pero es muy facil instalar en Linux.
Página principal de GCBASIC: http://gcbasic.sourceforge.net/index.html
Foro en sourceforge: https://sourceforge.net/forum/?group_id=169286
Manual en español: GcBasic_Manual.pdf
Instrucciones para la instalación (probado en Ubuntu 8.10):
(actualizado 19/10/09) si no quieres compilar puedes usar este Instalador deb: GcBasic.deb
1- Descargar Freebasic: http://downloads.sourceforge.net/fbc/FreeBASIC-v0.20.0b-linux.tar.gz?download
Extraer, abrir una terminal y colocarnos en la carpeta "FreeBASIC", ejecutar:
sudo ./install.sh -i
2- Descargar y descomprimir GCBASIC de aquí: http://downloads.sourceforge.net/gcbasic/GCBASIC_zip_0930.zip?modtime=1172276797&big_mirror=0
3- Descargar la última actualización de GCBASIC: http://gcbasic.sourceforge.net/newfiles/update.zip
Extraer y mover los archivos a la carpeta de GCBASIC (la que obtuvimos en el paso 2), de manera que los archivos de esta actualización sustituyan a los que obtuvimos en el paso 2, abrir una terminal y colocarnos en la carpeta GCBASIC y ejecutar:
fbc gcbasic.bas
4- En esta misma carpeta editar el archivo: sample gcbasic.ini :
gedit sample\ gcbasic.ini
y comentar (al estilo basic) las siguientes lineas:
Line 17: Assembler = mpasm\mpasmwin
Line 19: AssemblerParams = /c- /o- /q+ /l+ /x- /w1 "%FileName%"
Line 26: Programmer = icprog
Line 27: ProgrammerParams = -l"%FileName%"
deben quedar de esta manera:
'Assembler = mpasm\mpasmwin
'.......
'.......
y descomentar esta linea dejándola sin el apóstrofe inicial:
Assembler = GCASM
Guardar el archivo en la misma carpeta con el nombre:
gcbasic.ini
Y... ya está, el gcbasic no se instala, solamente crea el ejecutable para linux en la misma carpeta "update" o como la hayamos llamado.
Para probarlo buscar algún ejemplo en la página web y ejecutar:
./gcbasic ejemplo.txt
Tarda un ratito según el tamaño del archivo, no es precisamente rápido, pero es cuestión de unos segundos
Se crearán un .asm y un .hex en la misma carpeta (eso se puede ajustar en gcbasic.ini).
Solo he comprobado que funciona, genera el .hex y el asm, a ver si le hago una probada más a fondo para comprobar que tal se comporta.
Página principal de GCBASIC: http://gcbasic.sourceforge.net/index.html
Foro en sourceforge: https://sourceforge.net/forum/?group_id=169286
Manual en español: GcBasic_Manual.pdf
Instrucciones para la instalación (probado en Ubuntu 8.10):
(actualizado 19/10/09) si no quieres compilar puedes usar este Instalador deb: GcBasic.deb
1- Descargar Freebasic: http://downloads.sourceforge.net/fbc/FreeBASIC-v0.20.0b-linux.tar.gz?download
Extraer, abrir una terminal y colocarnos en la carpeta "FreeBASIC", ejecutar:
sudo ./install.sh -i
2- Descargar y descomprimir GCBASIC de aquí: http://downloads.sourceforge.net/gcbasic/GCBASIC_zip_0930.zip?modtime=1172276797&big_mirror=0
3- Descargar la última actualización de GCBASIC: http://gcbasic.sourceforge.net/newfiles/update.zip
Extraer y mover los archivos a la carpeta de GCBASIC (la que obtuvimos en el paso 2), de manera que los archivos de esta actualización sustituyan a los que obtuvimos en el paso 2, abrir una terminal y colocarnos en la carpeta GCBASIC y ejecutar:
fbc gcbasic.bas
4- En esta misma carpeta editar el archivo: sample gcbasic.ini :
gedit sample\ gcbasic.ini
y comentar (al estilo basic) las siguientes lineas:
Line 17: Assembler = mpasm\mpasmwin
Line 19: AssemblerParams = /c- /o- /q+ /l+ /x- /w1 "%FileName%"
Line 26: Programmer = icprog
Line 27: ProgrammerParams = -l"%FileName%"
deben quedar de esta manera:
'Assembler = mpasm\mpasmwin
'.......
'.......
y descomentar esta linea dejándola sin el apóstrofe inicial:
Assembler = GCASM
Guardar el archivo en la misma carpeta con el nombre:
gcbasic.ini
Y... ya está, el gcbasic no se instala, solamente crea el ejecutable para linux en la misma carpeta "update" o como la hayamos llamado.
Para probarlo buscar algún ejemplo en la página web y ejecutar:
./gcbasic ejemplo.txt
Tarda un ratito según el tamaño del archivo, no es precisamente rápido, pero es cuestión de unos segundos
Se crearán un .asm y un .hex en la misma carpeta (eso se puede ajustar en gcbasic.ini).
Solo he comprobado que funciona, genera el .hex y el asm, a ver si le hago una probada más a fondo para comprobar que tal se comporta.
Última edición por Pikitin el Dom 25 Oct 2009 - 13:07, editado 6 veces
Comentario
Estupendo trabajo. He seguido paso a paso las instrucciones y todo ha funcionado, también en Ubuntu 8.04. ¿Alguien se anima a hacer el "hola mundo" en Basic con el viejo 16F84 para probar el asm que genera GCBASIC con en el KTechLab? Me refiero a el programita que pone un led en modo intermitente.
Re: Compilador Basic libre para PIC: GCBASIC
Pues precisamente en eso estaba...
Este es un led parpadeante, probado en un pic16f628a, en circuito real y funciona Ok:
Y el asm generado bastante limpio la verdad:
No está mal el CowBasic este...
Además trae unas pocas librerías para periféricos, aunque no he probado, pero he visto por ahí encabezados para eeprom, usart, lcd, keypad, pwm, y algunas más.
Este es un led parpadeante, probado en un pic16f628a, en circuito real y funciona Ok:
- Código:
'Led parpadeante
#chip 16F628A, 20 'modelo de pic y velocidad de reloj: 20 Mhz
#define led PORTB.1
Main:
TRISB=0
PORTB=0
led = 1
wait 500 ms
led = 0
wait 500 ms
goto Main
Y el asm generado bastante limpio la verdad:
- Código:
;Program compiled by Great Cow BASIC (0.9 13/9/2008)
;Need help? See the GCBASIC forums at http://sourceforge.net/forum/?group_id=169286,
;check the documentation or email w_cholmondeley@users.sourceforge.net.
;********************************************************************************
;Set up the assembler options (Chip type, clock source, other bits and pieces)
LIST p=16F628A, r=DEC
#include
__CONFIG _HS_OSC & _WDT_OFF & _LVP_OFF & _MCLRE_OFF
;********************************************************************************
;Set aside memory locations for variables
DELAYTEMP equ 32
DELAYTEMP2 equ 33
RANDOMSEED equ 34
RANDOMSEED_H equ 35
SysWaitTempMS equ 36
SysWaitTempMS_H equ 37
;********************************************************************************
;Jump to initialisation code when PIC is reset
ORG 0
call INITSYS
goto SystemInitialise
;********************************************************************************
;Interrupt vector
ORG 4
;Various initialisation routines, automatically called by GCBASIC
SystemInitialise
;********************************************************************************
;Start of the main program
MAIN
banksel TRISB
clrf TRISB
banksel PORTB
clrf PORTB
bsf PORTB,1
movlw 244
movwf SysWaitTempMS
movlw 1
movwf SysWaitTempMS_H
call Delay_MS
bcf PORTB,1
movlw 244
movwf SysWaitTempMS
movlw 1
movwf SysWaitTempMS_H
call Delay_MS
goto MAIN
BASPROGRAMEND
sleep
goto $
;********************************************************************************
;Subroutines included in program
;********************************************************************************
Delay_MS
incf SysWaitTempMS_H, F
DMS_START
movlw 10
movwf DELAYTEMP2
DMS_OUTER
movlw 166
movwf DELAYTEMP
DMS_INNER
decfsz DELAYTEMP, F
goto DMS_INNER
decfsz DELAYTEMP2, F
goto DMS_OUTER
decfsz SysWaitTempMS, F
goto DMS_START
decfsz SysWaitTempMS_H, F
goto DMS_START
return
;********************************************************************************
INITSYS
movlw 7
movwf CMCON
clrf PORTA
clrf PORTB
return
;********************************************************************************
END
No está mal el CowBasic este...
Además trae unas pocas librerías para periféricos, aunque no he probado, pero he visto por ahí encabezados para eeprom, usart, lcd, keypad, pwm, y algunas más.
Re: Compilador Basic libre para PIC: GCBASIC
Si... en realidad falta una cosa en las instrucciones que puse, con eso solo tenemos la instalación del ejecutable y librerías, la instalación completa hay que descargarla de aquí:
http://downloads.sourceforge.net/gcbasic/GCBASIC_zip_0930.zip?modtime=1172276797&big_mirror=0
Ahí vienen ejemplos en la carpeta "demo"y documentación en la carpeta "doc". Hay una guía de comandos y directivas y luego un tutorial desde 0 muy util para educación, orientado a quien no sabe nada de programación.
También hay una hoja de cálculo que te calcula los parámetros de timer2 para usar en pwm.
Voy a actualizar esto en las instrucciones que dí al principio.
si ya hiciste la instalación anterior, simplemente descarga y descomprime el archivo de este link y mueve todos los archivos de la primera instalación que hiciste hasta esta, de manera que los archivos que tenías sustituyan a los que descargaste de este link.
Aquí está el manual online:
http://gcbasic.sourceforge.net/help/
Saludos.
http://downloads.sourceforge.net/gcbasic/GCBASIC_zip_0930.zip?modtime=1172276797&big_mirror=0
Ahí vienen ejemplos en la carpeta "demo"y documentación en la carpeta "doc". Hay una guía de comandos y directivas y luego un tutorial desde 0 muy util para educación, orientado a quien no sabe nada de programación.
También hay una hoja de cálculo que te calcula los parámetros de timer2 para usar en pwm.
Voy a actualizar esto en las instrucciones que dí al principio.
si ya hiciste la instalación anterior, simplemente descarga y descomprime el archivo de este link y mueve todos los archivos de la primera instalación que hiciste hasta esta, de manera que los archivos que tenías sustituyan a los que descargaste de este link.
Aquí está el manual online:
http://gcbasic.sourceforge.net/help/
Saludos.
Última edición por Pikitin el Vie 23 Ene 2009 - 6:51, editado 1 vez
Re: Compilador Basic libre para PIC: GCBASIC
Una cosa interesante aunque tiene doble filo: todo lo que no entienda el compilador lo pasa directamente tal y como está al asm.... aunque si lo escrito no es aceptado por el ensamblador dá un mensaje de error (aunque crea el .asm con el error y una marca en esa linea).
Así que se puede escribir código en asm directamente en el programa basic y lo pasa al archivo.asm... interesante.
Además las variables las declara en asm con el mismo nombre que en basic, no como en otros compiladores, que en asm les asigna nombres tipo: glob_reg_002 ó glob_variable o lo que sea.
Me está cayendo bién este compilador... parece muy sencillo de manejar y tiene bastantes posiblidades, y con la facilidad de manejar asm dentro del código basic pues la cosa pinta bién... habrá que ver las limitaciones y sobre todo probar con programas más complejos.
........................
He hecho una prueba insertando asm directamente en el programa basic... y resulta que no solo pasa el asm, sino que añade los "BANKSEL" que yo no puse !!!.... este cowbasic cada vez me está cayendo mejor...
Este es el archivo a compilar:
y este el asm generado (solo lo que interesa):
Así que se puede escribir código en asm directamente en el programa basic y lo pasa al archivo.asm... interesante.
Además las variables las declara en asm con el mismo nombre que en basic, no como en otros compiladores, que en asm les asigna nombres tipo: glob_reg_002 ó glob_variable o lo que sea.
Me está cayendo bién este compilador... parece muy sencillo de manejar y tiene bastantes posiblidades, y con la facilidad de manejar asm dentro del código basic pues la cosa pinta bién... habrá que ver las limitaciones y sobre todo probar con programas más complejos.
........................
He hecho una prueba insertando asm directamente en el programa basic... y resulta que no solo pasa el asm, sino que añade los "BANKSEL" que yo no puse !!!.... este cowbasic cada vez me está cayendo mejor...
Este es el archivo a compilar:
- Código:
'Led parpadeante
#chip 16F628A, 20 'modelo de pic y velocidad de reloj
#define led PORTB.1
mivariable = 0
TRISB=0
PORTB=0
bsf trisb,2 'código asm
bsf mivariable,3
Main:
led = 1
wait 500 ms
led = 0
wait 500 ms
goto Main
y este el asm generado (solo lo que interesa):
- Código:
;********************************************************************************
;Start of the main program
clrf MIVARIABLE
banksel TRISB
clrf TRISB
banksel PORTB
clrf PORTB
banksel TRISB
bsf TRISB,2
banksel MIVARIABLE
bsf MIVARIABLE,3
MAIN
bsf PORTB,1
movlw 244
movwf SysWaitTempMS
movlw 1
movwf SysWaitTempMS_H
call Delay_MS
bcf PORTB,1
movlw 244
movwf SysWaitTempMS
movlw 1
movwf SysWaitTempMS_H
call Delay_MS
goto MAIN
BASPROGRAMEND
sleep
goto $
;********************************************************************************
Re: Compilador Basic libre para PIC: GCBASIC
grazias a ustedes ahora puedo dejar winzoz para programar los pic de microchip.
el unico problema como se hace a configurar piklab para que use gcbasic como compilador???
el unico problema como se hace a configurar piklab para que use gcbasic como compilador???
alejandro- Participante Activo
- Mensajes : 87
Fecha de inscripción : 12/02/2009
Re: Compilador Basic libre para PIC: GCBASIC
Hola alejandro... bienvenido al foro!
No es facil usar otros compiladores en Piklab, pero se puede usar Gedit para compilar y grabar pics...
Mírate esto: https://pic-linux.forosactivos.net/gcbasic-f26/editor-para-compilar-programas-de-gcbasic-t91.htm
Y cualquier duda preguntas...
Un saludo.
No es facil usar otros compiladores en Piklab, pero se puede usar Gedit para compilar y grabar pics...
Mírate esto: https://pic-linux.forosactivos.net/gcbasic-f26/editor-para-compilar-programas-de-gcbasic-t91.htm
Y cualquier duda preguntas...
Un saludo.
arcachofo- Participante Activo
- Mensajes : 91
Fecha de inscripción : 26/11/2008
Re: Compilador Basic libre para PIC: GCBASIC
soy un maleducado
buscando una alternativa a mickrobasic y microcode studio para winzoz encontrè este foro.grazias a vuestras instrucciones ya puedo crear los hex con gedit y gcbasic.por comodidad(ma no es urgente) quisiera compilar el codigo creado con piklab con gcbasic.
no soy obligado ahora a usar winzoz para crear un hex con basic.
quisiera tambien saber como creare un flowcode(y poder creare un circuito) con ktechlab a partir de un asm creado con gcbasic.
grazias.
buscando una alternativa a mickrobasic y microcode studio para winzoz encontrè este foro.grazias a vuestras instrucciones ya puedo crear los hex con gedit y gcbasic.por comodidad(ma no es urgente) quisiera compilar el codigo creado con piklab con gcbasic.
no soy obligado ahora a usar winzoz para crear un hex con basic.
quisiera tambien saber como creare un flowcode(y poder creare un circuito) con ktechlab a partir de un asm creado con gcbasic.
grazias.
alejandro- Participante Activo
- Mensajes : 87
Fecha de inscripción : 12/02/2009
Re: Compilador Basic libre para PIC: GCBASIC
Manual
Hay un manual en español aqui http://es.sourceforge.jp/projects/sfnet_gcbasic/releases/
Descarga http://es.sourceforge.jp/projects/sfnet_gcbasic/downloads/Misc%20Files/Spanish%20translation/gcbasic_es.zip/
El archivo contiene un fichero gcbasic.chm para leerlo se debe usar , por ejemplo, el paquete xchm.
Saludos,
Per
El francés que prefiere leer el español al inglés
Hay un manual en español aqui http://es.sourceforge.jp/projects/sfnet_gcbasic/releases/
Descarga http://es.sourceforge.jp/projects/sfnet_gcbasic/downloads/Misc%20Files/Spanish%20translation/gcbasic_es.zip/
El archivo contiene un fichero gcbasic.chm para leerlo se debe usar , por ejemplo, el paquete xchm.
Saludos,
Per
El francés que prefiere leer el español al inglés
Re: Compilador Basic libre para PIC: GCBASIC
Muchas gracias!... esto hacía falta.
Lo he pasado a pdf y se puede descargar de aquí : GcBasic_Manual.pdf
Lo que son las cosas... el manual de GcBasic en español está en la web de Sourceforge-Japón...
Lo he pasado a pdf y se puede descargar de aquí : GcBasic_Manual.pdf
Lo que son las cosas... el manual de GcBasic en español está en la web de Sourceforge-Japón...
gcbasic es en linea
Habia el archivo gcbasic.chm
http://es.sourceforge.jp/projects/sfnet_gcbasic/downloads/Misc%20Files/Spanish%20translation/gcbasic_es.zip/
el archivo en pdf https://sourceforge.net/projects/piclinux/files/GcBasic-PL/GcBasic_Manual.pdf/download
Ahora en linea : http://per.launay.free.fr/es_gcbasic/
he extraído los archivos html del fichero con archmage en linea de comando :
$ archmage gcbasic.chm es_gcbasic
Al final, todos los archivos html estan en el directorio es_gcbasic
Se puede modificar y añadir paginas ...
He empezado la traducción al francés, si algunos quieren leer
http://per.launay.free.fr/dokuwiki-2008-05-05/doku.php?id=gcbasic:gcbasic-fr
Saludos
Per
http://es.sourceforge.jp/projects/sfnet_gcbasic/downloads/Misc%20Files/Spanish%20translation/gcbasic_es.zip/
el archivo en pdf https://sourceforge.net/projects/piclinux/files/GcBasic-PL/GcBasic_Manual.pdf/download
Ahora en linea : http://per.launay.free.fr/es_gcbasic/
he extraído los archivos html del fichero con archmage en linea de comando :
$ archmage gcbasic.chm es_gcbasic
Al final, todos los archivos html estan en el directorio es_gcbasic
Se puede modificar y añadir paginas ...
He empezado la traducción al francés, si algunos quieren leer
http://per.launay.free.fr/dokuwiki-2008-05-05/doku.php?id=gcbasic:gcbasic-fr
Saludos
Per
Ejemplo ADoff
Estoy traduciendo el gcbasic y encuentro un error, en la pagina
http://per.launay.free.fr/es_gcbasic/adoff.htm
el ejemplo
'Este programa encendera un LED conectado al PORTA.1
#chip 16F877A, 20
'Pone todos los pines en puertos A y E a modo digital.
ADOff
'Enciende puerto A bit 1
SET PORTA.1 on
se ha olvidado de poner el puerto PORTA.1 en salida con DIR
por defecto todos los puertos estan en entradas.
aqui el ejemplo que funciona
'Este programa encendera un LED conectado al PORTA.1
#chip 16F877A, 20
'Pone todos los pines en puertos A y E a modo digital.
ADOff
'Poner el puerto PORTA.1 en salida
DIR PORTA.1 OUT
'Enciende puerto A bit 1
SET PORTA.1 on
Saludos
Per
http://per.launay.free.fr/es_gcbasic/adoff.htm
el ejemplo
'Este programa encendera un LED conectado al PORTA.1
#chip 16F877A, 20
'Pone todos los pines en puertos A y E a modo digital.
ADOff
'Enciende puerto A bit 1
SET PORTA.1 on
se ha olvidado de poner el puerto PORTA.1 en salida con DIR
por defecto todos los puertos estan en entradas.
aqui el ejemplo que funciona
'Este programa encendera un LED conectado al PORTA.1
#chip 16F877A, 20
'Pone todos los pines en puertos A y E a modo digital.
ADOff
'Poner el puerto PORTA.1 en salida
DIR PORTA.1 OUT
'Enciende puerto A bit 1
SET PORTA.1 on
Saludos
Per
Re: Compilador Basic libre para PIC: GCBASIC
Hola, he intentado hacer la instalacion, tal como se explica al principio de este hilo y en el paso donde se ejecuta el freebasic para compilar el gcbasic, me sale el siguiente error: ld: cannot find -lncurses.
¿Alguien me puede decir porque y como solucionarlo?.
Gracias.
Saludos.
¿Alguien me puede decir porque y como solucionarlo?.
Gracias.
Saludos.
AcoranTf- Participante Activo
- Mensajes : 44
Fecha de inscripción : 10/11/2009
Re: Compilador Basic libre para PIC: GCBASIC
ld: cannot find -lncurses.
es decir que no se encontra la biblioteca libncurses , cada vez hay lnombre es libnombre.
puedes ver aqui http://ubuntuforums.org/showthread.php?t=1183384
puedes empezar en instalar libncurses5 quizas se necessita tambien libncurses5-dev, con los archivos de encabeza .h
Sino cuando no estas acostumbrado a compilar con
./configure ; make; make-install
lo mejor es usar el paquete deb de Pikitin : GcBasic-PL puedes encontrar lo aqui http://piclinux.sourceforge.net/
Despues puedes prosternarse ante Pikitin.
Buenas fiestas de Navidad
Per
es decir que no se encontra la biblioteca libncurses , cada vez hay lnombre es libnombre.
puedes ver aqui http://ubuntuforums.org/showthread.php?t=1183384
puedes empezar en instalar libncurses5 quizas se necessita tambien libncurses5-dev, con los archivos de encabeza .h
Sino cuando no estas acostumbrado a compilar con
./configure ; make; make-install
lo mejor es usar el paquete deb de Pikitin : GcBasic-PL puedes encontrar lo aqui http://piclinux.sourceforge.net/
Despues puedes prosternarse ante Pikitin.
Buenas fiestas de Navidad
Per
Re: Compilador Basic libre para PIC: GCBASIC
Hola per, gracias por responder.
Inicialmente lo intente con el archivo GcBasic.deb, pero me daba este error:www.yaitana.es/temp/gcbasic.png Asi que decidi intentarlo por el metodo de compilar, pero me daba el otro error ya comentado.
Ahora intentare instalar las librerias que faltan a ver si funciona.
Feliz Navida a ti tambien.
Saludos.
Inicialmente lo intente con el archivo GcBasic.deb, pero me daba este error:www.yaitana.es/temp/gcbasic.png Asi que decidi intentarlo por el metodo de compilar, pero me daba el otro error ya comentado.
Ahora intentare instalar las librerias que faltan a ver si funciona.
Feliz Navida a ti tambien.
Saludos.
AcoranTf- Participante Activo
- Mensajes : 44
Fecha de inscripción : 10/11/2009
Temas similares
» GCBasic: Librería ADC para PIC16F87X
» GCBasic: Librería Comparadores para PIC
» Paquete deb para instalar GcBasic en Ubuntu
» Ideas Para trabajo de grado con pics y software libre
» Librería para multitarea en GCBasic.
» GCBasic: Librería Comparadores para PIC
» Paquete deb para instalar GcBasic en Ubuntu
» Ideas Para trabajo de grado con pics y software libre
» Librería para multitarea en GCBasic.
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.