Curso de programación de PIC en PICBasic Pro

Buen aporte, veo que lo haces por bootloader pero voy y te pregunto lo que considero muy importante:
¿De que forma se declaran los Fuses para los P18 en el PicBasicPro? (no me funciona el @... si activo el PBPL),
¿Como configurar el compilador para los P18?,
¿Que es PBPL en la configuración del compilador?,
¿Tiene o no que ver el MPASM del MPLAB para la compilación de los P18?...

Muchos pueden tener dudas como esas, seria bueno que no la aclares...
gracias...
un saludo
 
Amigo doy respuesta a tus inquietudes

¿De que forma se declaran los Fuses para los P18 en el PicBasicPro? (no me funciona el @... si activo el PBPL), ¿Como configurar el compilador para los P18?

En el archivo de los PIC de la serie 18FXXXX.inc del PBP las líneas deben de coincidir con los símbolos que están en el P18FXXXX.inc del MPASM.

Por ejemplo:
PIC 18fXXXX.inc, una de las líneas es:
__CONFIG _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L

Pero en el P18fXXXX.inc del MPASM, las opciones que me da a elegir son:

_CPUDIV_1_1L EQU H'E7' ; CPU system clock not divided
_CPUDIV_2_1L EQU H'EF' ; CPU system clock divided by 2
_CPUDIV_3_1L EQU H'F7' ; CPU system clock divided by 3
_CPUDIV_4_1L EQU H'FF' ; CPU system clock divided by 4

Así pues la linea correcta sería:

__CONFIG _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_1_1L & _USBDIV_2_1L

Además se debe copiar en la carpeta del proyecto los archivos:
usb18mem.asm
usb18.inc
usb18.asm
18fXXXX.bas

Que también son necesarios para la comunicación USB HID

¿Que es PBPL en la configuración del compilador?

Una nueva versión de 32 bits de PBP (PBPL) que ofrece BIT, BYTE, WORD, y LARGO (32-bit, firmado) * Los tipos de variables. Esta versión larga es para uso con dispositivos de la familia PIC18. Cuando se trabaja con productos largos, los operadores matemáticos retorno firmado resultados en 32-bits, complemento a dos, el formato. Esto permite el almacenamiento, el cálculo y visualización de valores de -2147483648 un 2147483647.

Esto asegura que PBP sea completamente compatible con los programas existentes. También permite producir código que está mejor optimizado para los dispositivos más pequeños con menos recursos.

¿Tiene o no que ver el MPASM del MPLAB para la compilación de los P18?...

Amigo ByAxel necesitas el MPASM de MPLAB para compilar los PIC de la serie 18F la versión 2.45 en adelante de PBP contiene el Microdode Studio Plus, MCS Y MPASM.

Si se tienes estos integrados (lo que puedes baja de la red como Microcode Studio plus y PBP 2.45), enlazas el PBP con el MPASM en la opción Compile and Program Options , se habré una pestaña y marcas usar el MPASM y este busca la ruta donde se encuentra para luego compilar tu código con F9 o compilar y programar con F10.

Como veras el código que subí no tiene el .hex. Si deseas realizar la prueba puedes subir el esquemático y la simulación en Proteus o si tienes algún inconveniente hazlo saber. NO lo pude subir por que tengo problemas con el computador.

A mi amigo FALKON707 la idea no es pedir sino aportar, espacios como estos son para aclarar dudas y compartir conocimientos para que otros los puedan mejorar y adecuar a sus necesidades.
 
Bien amigo ByAxel por cierto, una vez preguntaste en este hilo sobre el compilador y editor para PIC de la serie 18F "Swordfish IDE", tengo varios ejemplos y una tutoría totalmente terminada como el caso del PROTON IDE que solamente me falta subir las partes restantes que será cuando termine de arreglar el computador y pasar algunos artículos a PDF. Por lo que en este foro quedara todo lo de PIC Basic para microcontroladores, en el hilo de PBP, PROTON y un nuevo HILO Swordfish IDE para aquellos que deseen escoger.
 
Hola amigos, pido ayuda para hacer funcionar un pulsador conectado al ra0 del pic, e ir cambiando de rutina a medida que se oprime.

@ device intrc_osc_NOCLKOUT
@ device pic16f628a,wdt_off,pwrt_off,mclr_off,protect_off,bod_off


CMCON = %00001111
TRISA = %11111111 'todos los pines como entradas
TRISB = %00000000 'todos los pines como salidas
portb = %00000000
boton var Byte
boton = 0
inicio:
If PORTA.0 = 1 Then Goto botonmas1
Goto inicio
botonmas1:
boton = boton + 1
If boton = 4 Then boton = 1
If boton = 1 Then PORTB = %00000010
If boton = 2 Then PORTB = %00000100
If boton = 3 Then PORTB = %00001000
pause 1000
Goto inicio

Algo me esta faltando porque no me funciona. Gracias
 
Bien amigo ByAxel por cierto, una vez preguntaste en este hilo sobre el compilador y editor para PIC de la serie 18F "Swordfish IDE", tengo varios ejemplos y una tutoría totalmente terminada como el caso del PROTON IDE que solamente me falta subir las partes restantes que será cuando termine de arreglar el computador y pasar algunos artículos a PDF. Por lo que en este foro quedara todo lo de PIC Basic para microcontroladores, en el hilo de PBP, PROTON y un nuevo HILO Swordfish IDE para aquellos que deseen escoger.

Impresionante (y) , realmente quiero hacer cosas con el "Swordfish IDE"... muy bien recibida la info :LOL: , en cuanto me libere de algunos trabajos le pongo pilas al Swordfish para colaborar con ejemplos en el respectivo hilo.

-----------------------------------------------------------------------------------------
Sobre los Fuses para los P18 en el PBP me he encontrado con varios detalles y los que pusiste no me funcionó, bueno investigue un poco más y lo aplique otra forma usando PBP 2.60L + Microcode 4 para aquellos que quieran modificar los Fuses para los P18:

1) En mi caso use el MPASM de la carpeta "C:\MCC18\mpasm" porque tengo el C18 instalado (el PBP no me vino con el MPASM integrado); abrir el archivo P18Fxxxx.INC, en la ultima parte del archivo están los Fuses.
2) Ubicar el archivo 18Fxxxx.INC, en la carpeta del PBP; en caso del PIC18F2550 es:
Código:
        NOLIST
    ifdef PM_USED
        LIST
        "Error: PM does not support this device.  Use MPASM."
        NOLIST
    else
        LIST
        LIST p = 18F2550, r = dec, w = -311, w = -230, f = inhx32
        INCLUDE "P18F2550.INC"	; MPASM  Header
        __CONFIG    _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
        __CONFIG    _CONFIG1H, _FOSC_HSPLL_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H
        __CONFIG    _CONFIG2L, _PWRT_OFF_2L & _BOR_ON_2L & _BORV_3_2L & _VREGEN_ON_2L
        __CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
        ;__CONFIG    _CONFIG3H, _CCP2MX_ON_3H & _PBADEN_OFF_3H & _LPT1OSC_OFF_3H & _MCLRE_ON_3H
        ;__CONFIG    _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _XINST_OFF_4L
        NOLIST
    endif
        LIST
EEPROM_START	EQU	0F00000h
BLOCK_SIZE	EQU	32
Donde se puede reemplazar directamente las líneas que empiezan con "__CONFIG" con la configuración que se quiera del archivo P18Fxxxx.INC del PIC respectivo (en este caso, PIC18F2550).

3) O comentar las líneas __CONFIG con ';' para evitar que salga errores al declarar los fuses en el mismo archivo del programa (.bas, .pbp) y de ese modo recién el compilador acepta la declaración como:
Código:
@ __CONFIG    _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
@ __CONFIG    _CONFIG1H, _FOSC_HS_1H
@ __CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_128_2H
@ __CONFIG    _CONFIG3H, _PBADEN_OFF_3H
@ __CONFIG    _CONFIG4L, _LVP_OFF_4L & _ICPRT_OFF_4L & _XINST_OFF_4L

o como pongo en la prueba que realicé para PBP:
Código:
'****************************************************************
' PIC18F2550, prueba generador de media onda
'****************************************************************
@ CONFIG PLLDIV = 5, CPUDIV = OSC1_PLL2, USBDIV = 2
@ CONFIG FOSC = HS
@ CONFIG BOR = ON, BORV = 1
@ CONFIG WDT = OFF, WDTPS = 32768
@ CONFIG MCLRE = OFF
@ CONFIG STVREN = ON, LVP = OFF, XINST = OFF, DEBUG = OFF

define OSC 20

CNT var byte

    clear
    ADCON1 = 15
    TRISB = 0
    LATB = 0
      
Main:
    for cnt = 0 to 127
        LATB = sin cnt
        pause 1
    next cnt          
    goto main 
end

Me avisan si me equivoque en algo :unsure:
saludos.
 

Adjuntos

  • p18.jpg
    p18.jpg
    200.8 KB · Visitas: 111
Última edición:
Saludo a los foreros,

Ando buscando la configuración de los fuses en pic basic pro para el 16f877A, en ninguno de los ejemplos que tengo están pues utilizan el icprog para configurarlos y yo utilizo el pikit2 para ello, entonces si alguien sabe, agradeceré el dato.
 
Saludo a los foreros,

Ando buscando la configuración de los fuses en pic basic pro para el 16f877A, en ninguno de los ejemplos que tengo están pues utilizan el icprog para configurarlos y yo utilizo el pikit2 para ello, entonces si alguien sabe, agradeceré el dato.

Están aquí C:\PBP\INC, el archivo M16F87XA y el método para usarlos ya se a visto.
 
hola de verdad muy interesante estos archivos inc de pbp, abri unos cuantos y por lo que vi estos archivos contienen las configuraciones y demas de los pic, los abri con block de notas, no son muchos me imagino por lo que vi son por series de pic y por eso no son tantos los archivos, los vi tan interesante que me puso a pensar en si se pueden crear nuevos en caso de que el programa no contenga un pic en especifico, claro guiandose por los que ya estan echos y con la informacion del datasheet del pic, otra cosa es la informacion de que muestra este archivo permite trabajar de forma mas completa ya que muestra todas las caracteristicas del pic, como lo fuser, timer, pwm, etc...
es como un archivo de informacion general direcionada ya que cada cosa tienen su direecion de memoria directo, pareciera un archivo preemsamblado pero con otra extencion diferente a la .asm.
gracias y saludos
 
hola de verdad muy interesante estos archivos inc de pbp, abri unos cuantos y por lo que vi estos archivos contienen las configuraciones y demas de los pic, los abri con block de notas, no son muchos me imagino por lo que vi son por series de pic y por eso no son tantos los archivos, los vi tan interesante que me puso a pensar en si se pueden crear nuevos en caso de que el programa no contenga un pic en especifico, claro guiandose por los que ya estan echos y con la informacion del datasheet del pic, otra cosa es la informacion de que muestra este archivo permite trabajar de forma mas completa ya que muestra todas las caracteristicas del pic, como lo fuser, timer, pwm, etc...
es como un archivo de informacion general direcionada ya que cada cosa tienen su direecion de memoria directo, pareciera un archivo preemsamblado pero con otra extencion diferente a la .asm.
gracias y saludos

interesante, yo creo que se puede probar tomando como ejemplo los que ya están; por decir para el PIC16F84A hay 6 archivos (16F84A.BAS, PIC14EXT.BAS, 16F84A.INC, PBPPIC14.LIB, PBPPIC14.RAM, PIC16F8x.INC). Quedaría el trabajo de buscar un PIC que no esté en la lista, luego con ayuda del datasheet crear los archivos necesarios, agregar a la carpeta del PBP y probar si compila. :unsure:
 
eso es teoria, abria que ver bien por ejemplo me puse a revisar y tendriamos que agregar a la lista de pic que muestra el programa eso ya seria otra historia vamos a seguir a ver donde llegamos...saludos
 
Pues saludos nuevamente,

Quiero comentarles que solicité información de los fuses para 16f877 pues quiero construir un regulador o pirómetro programable, creo que se llama así, para controlar la temperatura de un horno casero que quiero hacerme para fundir aluminio primeramente, después veré, la cuestión es que no sé que tipo de sensor debo utilizar pues los que aquí se mencionan como el lm35 son para temperaturas muy bajas y me gustaría controlar al menos los 1000°c, por ese motivo quería quería comentarles esta duda a ver si me logran orientar.

Gracias de antemano.
 
Pues saludos nuevamente,

Quiero comentarles que solicité información de los fuses para 16f877 pues quiero construir un regulador o pirómetro programable, creo que se llama así, para controlar la temperatura de un horno casero que quiero hacerme para fundir aluminio primeramente, después veré, la cuestión es que no sé que tipo de sensor debo utilizar pues los que aquí se mencionan como el lm35 son para temperaturas muy bajas y me gustaría controlar al menos los 1000°c, por ese motivo quería quería comentarles esta duda a ver si me logran orientar.

Gracias de antemano.

Para esas temperaturas usa un termopar del tipo K ( -200ºC a +1.372ºC )

Hay algo en el foro...
PIC16F877 + termocupla tipo K + AD595
 
Ok, me parece interesante, será que este medidor tipo k es el utilizado en los hornos de vitrofusión? como la idea es que me sirva no solo para metalurgia sino también, si es posible, utilizarlo en el control de la curva de temperatura en un horno para trabajar vidrio. En alguna oportunidad me ofrecieron uno pero a 900.000 pesos colombianos (unos 500 dolares), definitivamente estaba fuera de mi presupuesto, es por eso que expreso mi duda, en el vidrio debe haber un control muy preciso por lo que la medida debe acercarse lo más posible al dato real.

Gracias nuevamente.
 
hola, estoy ahora realizando unos cuantos proyectos con el picbasic pro, realice un minutero que colge hace no mucho por aca, ahora ando realizando un multicontador con lcd y 8 pulsadores, bien la cuestion es que un profesor amigo mio el cual tiene mucha experiencia sobre la programacion de pbp que me recomendo una pagina de un tal darrell taylor, bueno acabo de entrar a su pagina y para empezar esta en ingles, pero igual para no quedar con la duda, traduje un poco, y el fulano ha realizado un par de librerias por asi decirles externas al pbp para facilitar las interrupciones el pbp yo se un poco de todo y en cierta forma eso me ha traido consecuencia debido a que no he logrado controlar al 100% las instrupciones para el pic, la cuestion es me gustaria me ayudaran a entender como usar las librerias con pequeños ejemplos y saber el porque segun lei ahorran tanto epsacio de memoria del pic...gracias

aqui esta la pagina:

http://darreltaylor.com/DT_INTS-18/home.html
 
hola gente del foro.:)
bueno, aca estoy de nuevo, pidiendo vuestra ayuda jeje:D... no sin antes, dejar un pequeño aportito a cambio. se trata de un tacometro para motores DC como los de aeromodelismo. esta probado en proteus y no se cual es el limite de RPMs que puede medir.
ahora pasemos a mi duda... bueno, pasa que no tengo por ahora el display de este proyecto y me gustaria hacerlo ya que, me seria de gran utilidad. resulta que tengo un lcd de un nokia 1100 y me gustaria adaptarlo para este proyecto, utilizando como lenguaje de programacion, picbasic. tengo el pinout de este display y he visto en el foro como se conecta, pero lo que no se, es como cambiar la comunicacion entre el pic y el display nokia
ya que, en este tacometro, la comunicacion es en paralelo y el display nokia, es serie sincronico. ¿acaso se podria usar la instruccion SHIFTOUT para controlarlo? ustedes ¿que opinan? ¿como puedo hacer para adaptarlo a mi diseño? gracias.
saludosss

taco lcd.JPG
 

Adjuntos

  • tacolcd.rar
    29.2 KB · Visitas: 269
tengo el pinout de este display y he visto en el foro como se conecta, pero lo que no se, es como cambiar la comunicacion entre el pic y el display nokia
ya que, en este tacometro, la comunicacion es en paralelo y el display nokia,

suena interesante d@rio...
pudieras poner el link que encontraste para hablar de lo mismo...
me gustaría intentarlo...

Sera este???
https://www.forosdeelectronica.com/f18/display-nokia-1100-a-1012/

Mmmmmm...

si ese es link a mi me parece serial yo lo intentaría con el serout o el I2C...

Saludos...
 
Última edición:
hola lubeck.
si, es ese. como veras, ahi esta mi comentario...
bueno, estuve buscando el datasheet del controlador del display, aca esta. al parecer, se lo puede controlar mediante protocolo i2c, mi ingles es pesimo ¿habra alguien que lo vea y nos de una idea?
seguire investigando.
gracias saludosss
 
Atrás
Arriba