desktop

Curso de programación de PIC en PICBasic Pro

Buenas noches foro, coloque la palabra de configuración y aun sin compilar, me da error, indicando que hay ERROR SINTAXIS (syntax error), sigo haciendo pruebas ye intentos, al amigo torres le comento buena opción pero no aplicable a mi proyecto con el 12F629 que carece de entradas analógicas.

Sé perseverante con tus objetivos y flexible con tus métodos.
 
¿ Cual sería el error que da el compilador ? ¿ Probaste tal cual como te dijo D@rkbytes ? Por lo que leí, las palabras de configuración deben estar en mayúsculas "_wdt_off" no es lo mismo que "_WDT_OFF", revisa si no viene por ahí el problema.

el 12F629 que carece de entradas analógicas.

Ojo con esa asunción, el 12f629 si que tiene entradas análogas. No te olvides del comparador análogo que deberás apagar si es que el compilador no lo hace, no manejo ese lenguaje.
 
Buenas noches foro, coloque la palabra de configuración y aun sin compilar, me da error, indicando que hay ERROR SINTAXIS (syntax error), sigo haciendo pruebas ye intentos, al amigo torres le comento buena opción pero no aplicable a mi proyecto con el 12F629 que carece de entradas analógicas.

:facepalm:Tenes razón, hable pensando en el el 675 :p Igualmente, antes que nada, te recomiendo que leas estos dos hilos por las dudas:

:tu: No me anda GPIO.0 en pic 12f629 con pbp

:tu: No me anda GPIO.0 en pic 12f629 con pbp

En fin; Ahi lo manoseé un poco lo que tenias; En un rato armo algo en proteus y te comento si funcionó

;@ DEVICE PIC12F629 ;@ DEVICE INTRC_OSC_NOCLKOUT,PROTECT_OFF,CPD_OFF,WDT_OFF,MCLR_OFF,PWRT_ON,BOD_OFF DEFINE OSC 4 ; Definir que se trabajará con 4MHz. CMCON = 7 ; Comparadores analógicos OFF TRISIO = %1111000 ; Solo GP1 como salida symbol TEMP = GPIO.3 'nombro el pin RB3 como TEMP symbol LLAMA = GPIO.4 'nombro el pin RB4 como LLAMA symbol FLUJO = GPIO.5 'nombro el pin RB5 como FLUJO symbol GAS = GPIO.0 'nombro el pin RB0 como GAS symbol PILOT = GPIO.1 'nombro el pin RB1 como PILOT symbol ALAR = GPIO.2 'nombro el pin RB2 como ALAR GPIO.0 = 0 : GPIO.1 = 0 : GPIO.2 = 0 INICIO: 'comienzo de programa if TEMP = 0 then 'pregunto si TEMP es 0 si es cierto goto ALARM 'salto a ALARM endif 'fin del if if FLUJO =1 then 'pregunto si FLUJO es 1 si es cierto pause 200 'pausa de 200 ms goto PRENDER 'salto a PRENDER else 'de lo contrario goto inicio 'salto a inicio endif 'fin del if PRENDER: 'subrutina PRENDER pause 1000 'pausa de 1 seg IF temp = 0 THEN 'pregunto si TEMP es 0 si es cierto GOTO ALARM 'salto a ALARM endif 'fin del if if FLUJO =0 THEN 'pregunto si FLUJO es 0 si es cierto GOSUB INICIO 'salto a INICIO ENDIF 'fin del if high GAS 'enciendo GAS pause 500 'pausa de 500 ms high PILOT 'enciendo PILOT pause 500 'pausa de 500 ms if LLAMA = 0 then 'pregunto si LLAMA es 1 si es cierto pause 1000 'pausa de 1 seg else 'de lo contrario low PILOT 'apago PILOT goto MANTENER 'salto a MANTENER endif 'fin del if if LLAMA = 0 then 'pregunto si LLAMA es 1 si es cierto pause 1000 'pausa de 1 seg goto APAGAR 'salto a APAGAR else 'de lo contrario low PILOT 'apago PILOT goto MANTENER 'salto a MANTENER endif 'fin de if MANTENER: 'subrutina MANTENER pause 500 'pausa de 500 ms if TEMP = 0 then 'pregunto si TEMP es 0 si es cierto goto ALARM 'salto a ALARM endif 'fin de if pause 500 'pausa de 500 ms if LLAMA and FLUJO =1 then 'pregunta si LLAMA y FLUJO son 1 si es cierto gosub MANTENER 'salto a MANTENER de lo contrario goto APAGAR 'salto a APAGAR endif 'fin del if APAGAR: 'subrutina de APAGAR low GAS 'apago GAS low PILOT 'apago PILOT pause 5000 'pausa 500 ms goto INICIO 'salto a inicio ALARM: 'subrutina ALARM low gas 'apago GAS low piloT 'apago PILOT goto LED 'salto a LED LED: 'subrutina LED high ALAR 'prendo ALAR pause 100 'pausa de 100 ms low ALAR 'apago ALAR pause 100 'pausa de 100 ms if TEMP =0 then 'pregunto TEMP es 0 si es cierto gosub LED 'regreso a LED de lo contrario goto INICIO 'salto a inicio endif 'fin del if goto inicio 'ir a inicio end
 
Buenos días foro, lo sugerido por por switcxxi lo tome en cuenta y aun no trabaja, lo expuesto por torres de igual forma lo sometí a mi programa y aun sin funcionar, con respecto a darkbyte, actualice el pbp a versión 3.7 y si compilo pero no trabaja bien, sigo intentando haciendo pruebas, he leído y estudiado libros de pic Basic y parece mentira no sale nada acerca del uso y programa de los pic enanos
Agrego foto de mi quemador de pic atendiendo a la sugerencia de switchxxi
 

Adjuntos

  • IMG_20210302_074404.jpg
    IMG_20210302_074404.jpg
    346.4 KB · Visitas: 17
  • IMG_20210302_074404.jpg
    IMG_20210302_074404.jpg
    346.4 KB · Visitas: 18
Miraste eh hiciste lo que dice esos dos links? Yo armé en proteus lo que creí entenderte y simule; No presté mucha atención y lo hice rápido, pero parecía funcionar. Querés que te pase el hex?
 
Buenas noches saludos a todos desde Perú, por favor alguien podría pasarme un link para poder instalar correctamente el programa pbp y pic basic, no logro instalarlo, espero grandemente su apoyo
 
Hola a todos. Paso por aquí a contarles que después de muchos años tuve que actualizar mi PC y pasar a Windows 10
No lo había actualizado pensando en la pérdida de mis programas y confirmando mis temores ahora no consigo un Microcode Studio que funcione correctamente en el windows 10
¿Será que alguien me puede ayudar??? ¿Dónde lo podré conseguir???
¿Existe algún otro programa que funcione así de bonito como el microcode??? Ayuda, por favor. :(
 
No lo había actualizado pensando en la pérdida de mis programas y confirmando mis temores ahora no consigo un Microcode Studio que funcione correctamente en el windows 10
Yo tengo instalado el Microcode Studio en Windows 10 x64 y funciona correctamente.
¿Será que alguien me puede ayudar?
¿Qué problema tienes?
¿Dónde lo podré conseguir?
Donde siempre: Mecanique MicroCode Studio
¿Existe algún otro programa que funcione así de bonito como el microcode?
Por supuesto, y mucho mejor... Proton IDE
 
Hola a todos. Paso por aquí a contarles que después de muchos años tuve que actualizar mi PC y pasar a Windows 10
No lo había actualizado pensando en la pérdida de mis programas y confirmando mis temores ahora no consigo un Microcode Studio que funcione correctamente en el windows 10
¿Será que alguien me puede ayudar??? ¿Dónde lo podré conseguir???
¿Existe algún otro programa que funcione así de bonito como el microcode??? Ayuda, por favor. :(
Lo mas práctico es tener instalado Virtual Machine en tu PC o laptop con cualquier S.O., e instalar un disco virtual con W XP 32 bits, Microcode corre muy bien allí.
Saludos
Americo8888
 
Yo tengo instalado el Microcode Studio en Windows 10 x64 y funciona correctamente.

¿Qué problema tienes?

Donde siempre: Mecanique MicroCode Studio

Por supuesto, y mucho mejor... Proton IDE
OFF-TOPIC

Lastima que ya no saldrán nuevas actualizaciones, lo que si es de uno de los programadores de Proton, el Positron.

Hay un repositorio con ejemplos/temas de Proton que estaban en el foro aquí.

Personalmente no me satisface como el Proton pero puede ser dado los años que llevo usándolo y acostumbrándome a la interface, etc.

Saludos.
 
Hola gente, tanto tiempo sin entrar al foro jeje... bueno, el foro es como Dios, solo nos acordamos de el cuando nos hace falta...😄
bueno, les cuento que hace 2 dias que estoy peleando con un pic16f628A y la comunicacion serial. estoy intentando usar un modulo bluetooth HC05 para comunicar una pc con un pic. el problema es con el receptor, que no me quiere funcionar. en realidad funciona erraticamente. no le interesa el numero que le mande, hace cualquiera de las dos funciones que le he programado y esto cuando quiere... aca les comparto el codigo del receptor a ver si alguien me da una manito...😁
como transmisor, estoy usando un asistente virtual que llevo tiempo usando para mi robot animatronic, del que he compartido el proyecto en este foro, pero tambien estoy usando una app que instale en mi celular, se llama Bluetooth terminal HC05. esta muy buena para experimentar. bueno, aca les dejo el codigo por si alguien me puede ayudar... saludos a todos!!!

Código:
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2022 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 14/04/2022                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
'******************CONFIGURACION DE FUSIBLES*********************
@ __CONFIG _HS_OSC & _WDT_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF
'***********CONFIGURACION DE PUERTOS Y FRECUENCIA DE RELOJ*********************
INCLUDE "modedefs.bas"
DEFINE OSC 20                     'DECLARAMOS UN RELOJ DE 4MHZ
CMCON = 7                        'DESACTIVAMOS LOS OPERACIONALES DEL PIC
TRISA=%11111111                  'DECLARAMOS PORTA.0 A 7 COMO ENTRADA
TRISB=%00000111                  'DECLARAMOS TODO EL PUERTO B COMO SALIDA

PORTA=%11111111                  'INICIALIZAMOS PORTA.0 A 7 EN UNO LOGICO
PORTB=%00000111                  'INICIALIZAMOS TODO EL PUERTO B EN CERO LOGICO
'*******************************************************************************
DATO VAR BYTE

RECIBE:
SERIN PORTB.0,N9600,2000,RES,DATO
IF DATO=10 THEN ABRE
IF DATO=20 THEN CIERRA
GOTO RECIBE


ABRE:
LOW PORTB.1
PAUSE 1000
HIGH PORTB.1
GOTO RECIBE

CIERRA:
LOW PORTB.2
PAUSE 1000
HIGH PORTB.2
GOTO RECIBE

RES:
HIGH PORTB.1
HIGH PORTB.2
DATO=0
GOTO RECIBE

END
 
Hola gente, tanto tiempo sin entrar al foro jeje... bueno, el foro es como Dios, solo nos acordamos de el cuando nos hace falta...😄
bueno, les cuento que hace 2 dias que estoy peleando con un pic16f628A y la comunicacion serial. estoy intentando usar un modulo bluetooth HC05 para comunicar una pc con un pic. el problema es con el receptor, que no me quiere funcionar. en realidad funciona erraticamente. no le interesa el numero que le mande, hace cualquiera de las dos funciones que le he programado y esto cuando quiere... aca les comparto el codigo del receptor a ver si alguien me da una manito...😁
como transmisor, estoy usando un asistente virtual que llevo tiempo usando para mi robot animatronic, del que he compartido el proyecto en este foro, pero tambien estoy usando una app que instale en mi celular, se llama Bluetooth terminal HC05. esta muy buena para experimentar. bueno, aca les dejo el codigo por si alguien me puede ayudar... saludos a todos!!!

Código:
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2022 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 14/04/2022                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
'******************CONFIGURACION DE FUSIBLES*********************
@ __CONFIG _HS_OSC & _WDT_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF
'***********CONFIGURACION DE PUERTOS Y FRECUENCIA DE RELOJ*********************
INCLUDE "modedefs.bas"
DEFINE OSC 20                     'DECLARAMOS UN RELOJ DE 4MHZ
CMCON = 7                        'DESACTIVAMOS LOS OPERACIONALES DEL PIC
TRISA=%11111111                  'DECLARAMOS PORTA.0 A 7 COMO ENTRADA
TRISB=%00000111                  'DECLARAMOS TODO EL PUERTO B COMO SALIDA

PORTA=%11111111                  'INICIALIZAMOS PORTA.0 A 7 EN UNO LOGICO
PORTB=%00000111                  'INICIALIZAMOS TODO EL PUERTO B EN CERO LOGICO
'*******************************************************************************
DATO VAR BYTE

RECIBE:
SERIN PORTB.0,N9600,2000,RES,DATO
IF DATO=10 THEN ABRE
IF DATO=20 THEN CIERRA
GOTO RECIBE


ABRE:
LOW PORTB.1
PAUSE 1000
HIGH PORTB.1
GOTO RECIBE

CIERRA:
LOW PORTB.2
PAUSE 1000
HIGH PORTB.2
GOTO RECIBE

RES:
HIGH PORTB.1
HIGH PORTB.2
DATO=0
GOTO RECIBE

END
Hola Darío, probaste usando la interrupción por usart? Ejemplo:

DEFINE HSER_BAUD 9600
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 24h
DEFINE HSER_SPBRG 25
DEFINE HSER_Clear On
....
Hserin 100,continuo,[dato]
...
IF DATO=10 THEN ABRE
IF DATO=20 THEN CIERRA
 
Hola Darío, probaste usando la interrupción por usart? Ejemplo:

DEFINE HSER_BAUD 9600
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 24h
DEFINE HSER_SPBRG 25
DEFINE HSER_Clear On
....
Hserin 100,continuo,[dato]
...
IF DATO=10 THEN ABRE
IF DATO=20 THEN CIERRA
Hola martin, gracias por responder. probe un codigo parecido que compartieron aqui en el foro, es este que dejo aca. lo probe tal cual, pero sn exito... voy a hacer otra prueba haciendo algunas modificaciones, saludos. ;)(y)
Código:
'*******************************************************************************
' DEFINICIÓN DE FUSES Y OSILADOR
@ __CONFIG _XT_OSC & _WDT_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF
'INCLUDE  "modedefs.bas"


CMCON = 0

DEFINE OSC 4
'*******************************************************************************
CMCON = 7                     
TRISA = %00000000
TRISB = %00010010
'*******************************************************************************
' INICIALIZANDO USART
DEFINE HSER_BAUD 9600
DEFINE HSER_RCSTA 90h
DEFINE HSER_TcSTA 24h
DEFINE HSER_SPBRG 25
DEFINE HSER_Clear On               

LED var byte
'*******************************************************************************
PORTA = %00000000
PORTB = %00000000
'*******************************************************************************
pause 1000

PORTB.0 = 1                      '*************************
pause 500                       'esto es para saber q el pic vive
PORTB.0 = 0                      '*************************
 
inicio:
    
HSERIN 100,continuo,[led]



continuo:
if led = "A" then
PORTB.0 = 1
pause 500
endif

if led = "B" then
PORTB.0 = 0
pause 500
endif
goto inicio
end
 
No te estará pasando como me pasó en algún momento con el tema de puerto ocupado? Me acuerdo que darkbyte me ayudó en aquel entonces. Me pasó que cuando quería hacer comunicación serial desde pic al micro, no me funcionaba; Si no mal recuerdo, me dijo que use esos software de puertos virtuales y ahí caímos que era eso, que el puerto no lo podía usar por qué estaba ocupado... Después googleando caí que el verdadero conflicto era por usar un win desatendido ... Migre a otro win y quedó funcional... Chequea con otro micro en paralelo para ver si tenés comunicación. O sea, usa este mismo programa y en el otro micro mándale las instrucciones que le mandarías por el soft que estás usando
 
Última edición:
Atrás
Arriba