Compilador Basic libre para PIC: GCBASIC

Ver el tema anterior Ver el tema siguiente Ir abajo

Compilador Basic libre para PIC: GCBASIC

Mensaje por Pikitin el Jue 22 Ene 2009 - 3:40

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.


Última edición por Pikitin el Dom 25 Oct 2009 - 13:07, editado 6 veces

Pikitin
veterano
veterano

Mensajes : 623
Fecha de inscripción : 26/11/2008

http://linuxmicros.blogspot.com/

Volver arriba Ir abajo

Comentario

Mensaje por digigalos el Jue 22 Ene 2009 - 11:16

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.
avatar
digigalos
Participante
Participante

Mensajes : 16
Fecha de inscripción : 20/01/2009

http://digigalos.es

Volver arriba Ir abajo

Re: Compilador Basic libre para PIC: GCBASIC

Mensaje por Pikitin el Jue 22 Ene 2009 - 18:12

Pues precisamente en eso estaba...
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.

Pikitin
veterano
veterano

Mensajes : 623
Fecha de inscripción : 26/11/2008

http://linuxmicros.blogspot.com/

Volver arriba Ir abajo

Manual

Mensaje por digigalos el Jue 22 Ene 2009 - 21:12

¿Existe algún manual con los comandos de GCBasic?
avatar
digigalos
Participante
Participante

Mensajes : 16
Fecha de inscripción : 20/01/2009

http://digigalos.es

Volver arriba Ir abajo

Re: Compilador Basic libre para PIC: GCBASIC

Mensaje por Pikitin el Jue 22 Ene 2009 - 21:45

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.


Última edición por Pikitin el Vie 23 Ene 2009 - 6:51, editado 1 vez

Pikitin
veterano
veterano

Mensajes : 623
Fecha de inscripción : 26/11/2008

http://linuxmicros.blogspot.com/

Volver arriba Ir abajo

Re: Compilador Basic libre para PIC: GCBASIC

Mensaje por Pikitin el Jue 22 Ene 2009 - 22:49

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... Smile

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    $

;********************************************************************************


Pikitin
veterano
veterano

Mensajes : 623
Fecha de inscripción : 26/11/2008

http://linuxmicros.blogspot.com/

Volver arriba Ir abajo

Re: Compilador Basic libre para PIC: GCBASIC

Mensaje por alejandro el Jue 12 Feb 2009 - 10:47

grazias a ustedes ahora puedo dejar winzoz para programar los pic de microchip. lol!
el unico problema como se hace a configurar piklab para que use gcbasic como compilador???
avatar
alejandro
Participante Activo
Participante Activo

Mensajes : 87
Fecha de inscripción : 12/02/2009

Volver arriba Ir abajo

Re: Compilador Basic libre para PIC: GCBASIC

Mensaje por arcachofo el Jue 12 Feb 2009 - 10:56

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: http://pic-linux.forosactivos.net/gcbasic-f26/editor-para-compilar-programas-de-gcbasic-t91.htm

Y cualquier duda preguntas...


Un saludo.
avatar
arcachofo
Participante Activo
Participante Activo

Mensajes : 91
Fecha de inscripción : 26/11/2008

Volver arriba Ir abajo

Re: Compilador Basic libre para PIC: GCBASIC

Mensaje por alejandro el Jue 12 Feb 2009 - 11:35

soy un maleducado Embarassed
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. lol!

quisiera tambien saber como creare un flowcode(y poder creare un circuito) con ktechlab a partir de un asm creado con gcbasic.


grazias.
avatar
alejandro
Participante Activo
Participante Activo

Mensajes : 87
Fecha de inscripción : 12/02/2009

Volver arriba Ir abajo

Re: Compilador Basic libre para PIC: GCBASIC

Mensaje por per el Mar 6 Oct 2009 - 21:31

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

per
Participante Activo
Participante Activo

Mensajes : 64
Fecha de inscripción : 08/12/2008
Localización : Rennes Bretaña Francia Europa

http://per.launay.free.fr

Volver arriba Ir abajo

Re: Compilador Basic libre para PIC: GCBASIC

Mensaje por Pikitin el Miér 7 Oct 2009 - 7:44

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

Pikitin
veterano
veterano

Mensajes : 623
Fecha de inscripción : 26/11/2008

http://linuxmicros.blogspot.com/

Volver arriba Ir abajo

gcbasic es en linea

Mensaje por per el Lun 2 Nov 2009 - 21:11

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

per
Participante Activo
Participante Activo

Mensajes : 64
Fecha de inscripción : 08/12/2008
Localización : Rennes Bretaña Francia Europa

http://per.launay.free.fr

Volver arriba Ir abajo

Ejemplo ADoff

Mensaje por per el Lun 2 Nov 2009 - 23:02

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

per
Participante Activo
Participante Activo

Mensajes : 64
Fecha de inscripción : 08/12/2008
Localización : Rennes Bretaña Francia Europa

http://per.launay.free.fr

Volver arriba Ir abajo

Re: Compilador Basic libre para PIC: GCBASIC

Mensaje por AcoranTf el Vie 10 Dic 2010 - 22:49

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.

AcoranTf
Participante Activo
Participante Activo

Mensajes : 44
Fecha de inscripción : 10/11/2009

Volver arriba Ir abajo

Re: Compilador Basic libre para PIC: GCBASIC

Mensaje por per el Sáb 18 Dic 2010 - 15:43

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

per
Participante Activo
Participante Activo

Mensajes : 64
Fecha de inscripción : 08/12/2008
Localización : Rennes Bretaña Francia Europa

http://per.launay.free.fr

Volver arriba Ir abajo

Re: Compilador Basic libre para PIC: GCBASIC

Mensaje por AcoranTf el Dom 19 Dic 2010 - 0:16

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.

AcoranTf
Participante Activo
Participante Activo

Mensajes : 44
Fecha de inscripción : 10/11/2009

Volver arriba Ir abajo

Re: Compilador Basic libre para PIC: GCBASIC

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

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