Curso de programación de PIC en PICBasic Pro

Tengo un Programita en PICBasic Pro que, con PIC16F877A funciona correctamente, pero cuando quiero hacerle funcionar con un PIC18F452, no me compila, me dice que tengo un error de sintaxis en el OPTION_REG:
El PIC18F452 no tiene el registro OPTION, usa el registro T0CON para configurar el prescaler del Timer0

Leyendo la hoja de datos te puedes enterar de muchas cosas.
 
pero aparte de configurar el cristal en el 18f452.inc de xt por hs, hay otra cosa que configurar?
Muchas cosas, ese programa es un caos, y más si se migra a un PIC18.
Mirate todos los registros en las hojas de datos para comparar, y aprende a usar las interrupciones.
Las interrupciones no se llaman desde el programa, se generan, ya sea interna o externamente.
Checa bien tu estructura y busca cómo usar la instrucción Enable y Disable de PBP.
 
Buenas noches, Darbytes, con respecto al tema de fuses para compilar 18f452 tome lo que escribiste en este post: Problema con PIC16F877A y cristal de 20 Mhz. y cuando compilo en PBP me salen dos errores y es por los corchetes que hay, uno tiene corchete a la izquierda encerrando una letra B, y la otra esta encerrando y le eh puesto delante de caada una de estas lineas de mi pic 18f452.inc un ; punto y coma y compila bien, estara bien, lo que hice? Gracias
 

Adjuntos

  • WhatsApp Image 2023-09-07 at 11.53.30 PM (1).jpeg
    WhatsApp Image 2023-09-07 at 11.53.30 PM (1).jpeg
    149.7 KB · Visitas: 18
Última edición:
Si te compila, está bien, pero habrá que verificar que realmente queden como quieres.
Para esto, yo abro el archivo .hex con el WinPIC800 y los compruebo.

Para olvidarse de ese tipo de modificaciones con los archivos .inc, usa el PBP3.X
Este es para sistemas basados en x64, compila usando MPASMX, y los fuses los podrás escribir directamente por código.
 
Esos [ B ] y [ /B ] suenan a código HTML para poner en negrita esa parte por lo que se debería borrar. Si bien no conozco PBP, no creo que sea parte del programa, sino más bien que se coló en alguna edición.

Por la configuración del microcontrolador, hay programadores que te permiten modificar los "fuses" cuando se va a programar. Si el tuyo lo permite, modifica los mismos ahí o, una vez compilado, al abrir el .HEX en el programador comprueba que esta todo en su debido lugar.
 
Sí, ese BBCode extra no debe estar dentro del código, es algo que se coló y solía ser un bug de la antigua plataforma del Foro.
De hecho, era una tarea ardua para los moderadores editar los códigos que pegaban los usuarios, tan así, que tuve que realizar un programa que eliminara todo el BBCode y posteriormente volverlo a insertar ya limpio.
Nota: El BBCode está basado en HTML.

Aquí lo que pasa es lo siguiente, y no me gusta ser duro con mis respuestas, por eso de que ahora todo parece de cristal.
Sin embargo, es preciso mencionar lo siguiente:
Para empezar a programar, sea el lenguaje que sea, debes aprender a conocerlo.
Si PICBasic usa el compilador MPASM o MPASMX, es lógico que usará sus librerías.
Así que en este aspecto, solo basta estudiarlas y ahí se encontrará la información requerida.
En este caso del PBP, con leer los archivos .inc encontraremos los fuses y todas las definiciones necesarias para usarlas en PBP.
En su tiempo eso hacía yo y era lo que publicaba, no me encontraba los fuses por arte de magia.
Pero hay mucha gente perezosa que no le gusta leer ni estudiar y al primer error van a Internet en busca de ayuda.
Si tuvieran un poco de lógica e iniciativa propia, solventarían sus problemas sin requerir ayuda.

Yo se los dije muchas veces, lean los archivos .inc y los ejemplos de plantillas (templates) .asm de MPLAB porque ahí está lo que requieren.
 
Buenas tardes. Yo estoy queriendo conocer mejor el microcontrolador 18F452, pero su Datasheet está en inglés y no domino el inglés.
A
demás, estoy buscando un mejor traductor, porque el de Google, no pasa nada. ¿Alguna recomendación por allí?
Gracias.
 
Última edición por un moderador:
Hola, gente. Estoy interesado en esto por la escuela.
H
e estado programando en PBP usando el PIC16F877A y me ha salido bien hasta ahora.
S
olo tengo algunas dudas. ¿Dec1 y Dec2 al ponerlos en la LCD qué significaría?
que Dec es para escribir en el sistema decimal pero, ¿Dec1 y Dec2 qué son?
 
Última edición por un moderador:
En sí, DecX representa la cantidad de dígitos a mostrar.
Por ejemplo: si el valor es 3, usando Dec2, se mostrará: 03, si se usa Dec4, se mostrará: 0003, etc.

Para dudas de este tipo, PBP tiene un archivo de ayuda donde viene todo explicado.
 
Buenos días. En algún lugar del Foro encontré un programa para el Timer1 con ciclo de 1 Segundo con Xtal 32,768 Khz, y ahora deseo hacer funcionar el mismo circuito pero con TMR0
¿Dónde está la falla que no cuenta? Gracias por su apoyo, amigos.
 

Adjuntos

  • semeforo.rar
    1.3 KB · Visitas: 4
Última edición por un moderador:
En algún lugar del Foro encontré un programa para el Timer1 con ciclo de 1 Segundo con Xtal 32,768 Khz
El programa original lo escribí yo.
ahora deseo hacer funcionar el mismo circuito pero con TMR0
Si quieres usar el Timer 0, tienes que usar y configurar los registros del Timer 0
¿Dónde está la falla que no cuenta?
En que solo agregaste cosas pero no configuraste nada.
El Timer 0 no tiene un oscilador para cristal externo, y ese ejemplo que subí está dedicado al Timer 1 y su oscilador externo, así que te convendría más escribir un programa desde cero.

Tendrás que tener en cuenta que el Timer 1 es de 16 bits y el Timer 0 es de 8 bits, así que requerirás realizar una configuración de desborde que te convenga conforme a la frecuencia del oscilador y que aparte te sea cómodo usar para el contador.
 
Bueno eso si es cierto de que use su programa, y esa es la idea adaptarlo no?, le digo, aqui tengo un reloj con tmr0 (sacado del libro Carlos reyes.)configurado con pic 18f452, que funciona y tiene la misma configuracion del archivo anterior.
 

Adjuntos

  • respuesta.rar
    1.3 KB · Visitas: 5
Bueno eso sí es cierto de que usé su programa, y esa es la idea adaptarlo, ¿no?
Claro, para eso son los ejemplos, pero ese ejemplo es para el Timer 1 y tú quieres usar el Timer 0
Como funcionan diferente, por eso sugerí que inicies un programa desde cero.

aquí tengo un reloj con tmr0 (sacado del libro Carlos reyes.) configurado con PIC18F452, que funciona y tiene la misma configuracion del archivo anterior.
Pues no, en ese ejemplo sí están usando y configurando los registros del Timer 0
 
Buenas noches. Estuve realizando este proyecto de secuencia de LED con PIC16F628A y funciona a la perfección, pero cuando pasé a adaptar el código para un PIC18F452, la visibilidad de la pantalla LCD es una locura, aunque el Timer 0 funciona bien.
¿Qué sentencia me falta agregarle?
Adjunto el archivo.
 

Adjuntos

  • NUEVAPREGUNTA.rar
    1.1 KB · Visitas: 3
  • isiscrono.rar
    22.9 KB · Visitas: 3
Última edición por un moderador:
Hola...Como regla general, si en un microcontrolador te funciona y en otro, no, debes leer atentamente las hojas de datos de ambos dispositivos y fijarte las diferencias.

Para empezar seguramente los fusibles de programación serán distintos así como algunos módulos de hardware que incluya cada uno.

Revisando muy por arriba el programa "salta" un error en mi compilación del uso de una palabra reservada del sistema "loop" como etiqueta de una rutina cosa que no se debe hacer.

Loop se usa junto a Do

Captura de pantalla 2023-09-20 095551.jpg

El programa no tiene muchas referencias de que hacen las cosas y si las tiene es para un 84.

Si quieres ayuda debes "ayudar a que te ayuden" no hacérsela mas complicada porque eso desalienta a cualquiera que quiera orientarte.

Presenta "todo" el original que si te funciona("completo", simulación, archivo fuente y compilación) y lo mismo para la reforma para de esa forma ver que has echo.

Mi PBP es la versión 5.0.0.5 y el PBPX 3.1.2.1. Diferentes versiones tienen tratamiento diferente en algunos aspectos.

Si el microcontrolador que vas a usar es el 18F452, debes aprender todo sobre el leyendo la hoja de datos porque los ejemplos que encuentres para otros, generalmente no te funcionaran si no lo adaptas al nuevo microcontrolador.

Saludos.
 
Atrás
Arriba