Curso de programación de PIC en PICBasic Pro

Al decir que no era lo que buscaba me referia al raro efecto
Aaa.. Oki... malinterprete la oracion...:D sorry...


pense que obviando las R pull-Down y las limitadoras para los leds aunque fuera solo para la simulacion,

hay cosas que se pueden obviar y cosas que no, y se van aprendiendo poco a poco, como un ejemplo te puedo decir que los cristales se pudiera no poner puesto que dentro de las propiedades del micro se pone la velocidad de oscilacion... y por ende no toma en cuenta lo que conectes en Osc1 y Osc2... en caso de que lo pongas externo... y hay muchos otros casos similares que no recuerdo... pero si sabes que lo lleva lo mejor es ponerlo...
 
Hola a todos quisiera sabera sí alguien sabe bien como funciona el freepcb pues según lo que he leido puede generar pcbs hasta de 60 pulgadas por 60 pulgadas y con 16 capas lo que seria un super impreso les agradezco su ayuda, ya lo consegui y lo instale en mi pc pero no logro iniciar ningún proyecto no se que me puede estar faltando
 
Última edición:
60 pulgadas por 60 pulgadas y con 16 capas

a que se refiere con 16 capas???

que en el interior de la PCB tiene mas capas???
si batallo con una, dos muy dificil, treesss imposible, 16 inimaginable...:D

porque no usas el Ares de proteus... esta bueno... y si simulas en el ya no batallas en andar pasando de aqui para alla... digo como sugerencia... y no yo no he usado el freePCB
 
hola

al igual que inspector tengo un problema con la sentencia TOGGLE que me esta sacando de quicio un poco

yo tengo este codigo

Código:
TRISB = %11111110

TRISD = %00000001

PORTB = 0

PORTD = 1

INICIO

IF PORTD.1 = 1 THEN TOGGLE PORTB.1
PAUSE 500

GOTO INICIO 

END

cuando presiono el boton se enciende el led pero a volver a pulsarlo ya no cambia.

imagino que la sentencia le falta algo pero para practicar lo queria hacer asi sin definir variables ni nada, un puerto y otro.

alguna sugerencia ?

gracias y lubeck, pronto me pondre con la parte SHIFTOUT. gracias por tu colaboracion pero necesito pulir cosas antes de llegar a complicarme. a la par de una fuente simetrica jaja
 
sube tambien la simulacion en proteus pero a ojo de buen cubero quita eso de portD=1 porque no tiene sentido que lo definas como entrada y luego lo haces de salida.... :confused:



aaahhh y pon esto...


IF PORTD.1 = 1 THEN
TOGGLE PORTB.1
PAUSE 500
endif

en lugar de esto...
IF PORTD.1 = 1 THEN TOGGLE PORTB.1
PAUSE 500
 
Última edición:
Saludos lubeck
Ya encontre los cambios ha realizar para PBP3.
Debes modificar los siguientes archivos...
C:\PBP3\PBPUS18L.LIB
Modificalo donde dice include "\PBP\PBPPI18L.LIB" por include "\PBP3\PBPPI18L.LIB"
Ese es un error de meLabs :cool:
Luego, el archivo C:\PBP3\PBPUSB14.LIB modifica la ruta hacia PBP3 como lo de arriba.
Y por último en el archivo C:\PBP3\PBPUSB18.LIB también haz lo mismo.
Trata de compilar el archivo C:\PBP3\USB18\hid_desc.bas
El problema me parece que esta al cambiar a versiones superiores a MPLAB 8.20
Creo que hay que modificar más librerías para que trabajen bien los programas que genera el EasyHID.
El ejemplo que alguna vez probe, y funcionaba bien, lo sigo buscando :)
En este link meLabs Forum hay algunos comentarios al respecto.

Suerte.
 
gracias lubeck en cuanto llegue lo pruebo y te comento. de todas formas el puerto d lo defino como entrada puesto que ahi esta el pulsador.

otra cosa a partir de then te lo llevas todo a la siguiente linea ? eso es relevante?

ah , podrias explicarme brevemente el endif?

un saludo grande, gracias por todo
 
En este....

IF PORTD.1 = 1 THEN
TOGGLE PORTB.1
PAUSE 500
endif

si pulsas en el portD.1 se mete dentro de lo que este entre Then y Endif, osea que hace el toggle y el pause.... ojo los dos toggle y pause porque estan dentro...


aca...

IF PORTD.1 = 1 THEN TOGGLE PORTB.1
PAUSE 500

si presionas D.1 va a hacer solo el toggle, pero como el pause no esta dentro del then... entonces siempre estara pausando 500mS cada que de una vuelta dentro del ciclo Inicio y Goto Inicio....

por el lado de la definicion del PortD.1

tu le dices con TrisD=%1 que es de entrada, por lo que solo aceptara entradas, pero si tu le dices que portD=1 esta diciendo que D1 sea 1, forzando a que cambie el sentido de entrada a salida...
(en esto no estoy muy seguro... pero si te esta fallando es por algo y es lo que me parece mas sospechoso y honestamente no tengo ganas de comprobarlo y estoy viendo lo del PBP3:D)



Saludos lubeck
Ya encontre los cambios ha realizar para PBP3.
Debes modificar los siguientes archivos...
C:\PBP3\PBPUS18L.LIB
Modificalo donde dice include "\PBP\PBPPI18L.LIB" por include "\PBP3\PBPPI18L.LIB"
Ese es un error de meLabs :cool:
Luego, el archivo C:\PBP3\PBPUSB14.LIB modifica la ruta hacia PBP3 como lo de arriba.
Y por último en el archivo C:\PBP3\PBPUSB18.LIB también haz lo mismo.
Trata de compilar el archivo C:\PBP3\USB18\hid_desc.bas
El problema me parece que esta al cambiar a versiones superiores a MPLAB 8.20
Creo que hay que modificar más librerías para que trabajen bien los programas que genera el EasyHID.
El ejemplo que alguna vez probe, y funcionaba bien, lo sigo buscando :)
En este link meLabs Forum hay algunos comentarios al respecto.

Suerte.

Oki ya hice los cambios y si me compila el hid_des.bas...
tambien me compila programas sencillos del 18f4550... pero persiste el error con el uso de los comandos de USB... (USBInit,USBService,USBIn,USBOut) :cry: deja ver si me encuentro algo en el foro del link que pusiste...
 
Última edición:
hola

acabo de probar tu codigo y no me funciona tal y como creia. cuando defino el puerto como 0 al acabar la sentencia se para. imagino que sera por el endif.

vamos que si uso esto
Código:
TRISB = %11111110

TRISD = %00000001

PORTB = 0

PORTD = 1
 

INICIO
IF PORTD.0 = 1 THEN
TOGGLE PORTB.0
PAUSE 500
ENDIF

GOTO INICIO 

END

se enciende el pin cuando pulso y si vuelvo a pulsar no se apaga pero si pongo esto
Código:
TRISB = %11111110

TRISD = %00000001

PORTB = 0

PORTD = 0
 

INICIO
IF PORTD.0 = 1 THEN
TOGGLE PORTB.0
PAUSE 500
ENDIF

GOTO INICIO 

END

al pulsar mantiene el led encendido 500ms y se para

que puede pasar.

perdonad que no ponga simulaciones pero es que no las uso y aparte no tengo el programa.

lo hago todo con veroboard...xd
 
yo decia que lo quitaras.... :D
prueba asi...
Código:
TRISB = %11111110
TRISD = %1
PORTB = 0
INICIO
 IF PORTD.0 = 1 THEN
  TOGGLE PORTB.0
  PAUSE 500
 ENDIF
GOTO INICIO 

END
 
lo he probado tal y como lo describes e incluso cambiando el TRISD pero una vez que pulso ya no cambia a apagado.

que ocurrira?

que cosas tan raras xd

gracias por todo
 
lo he probado tal y como lo describes e incluso cambiando el TRISD pero una vez que pulso ya no cambia a apagado.

que ocurrira?

que cosas tan raras xd

gracias por todo
creo que eso es buena señal... acerca el dedo (si tu dedo) a donde esta el puerto RD.0 si cambia quiere decir que esta mal armado, si no cambia sube con algun dibujo tu esquema... y procura utilizar algun diseñador de esquemas..



:unsure:.. y di que micro estas usando , que oscilador usas (interno, externo, o etc), el codigo deberia funcionar
 
Última edición:
mmmm no cambia. en fin manana intentare subir algun dibujo pero es raro porque todas las practicas que
ido haciendo me han salido bien.... si algo ayuda dire que el esquema que uso es resistencia de 10k a 0v conectada al pulsador.. y la otra parte del pulsador a 5v y al PORTD.0.

espero que sirva... de todas formas me pondre a ello

ah 16f887 y oscilador externo de 10. no tenia de 4... aunque esta definido como

define osc 10
 
:unsure:.. y di que micro estas usando , que oscilador usas (interno, externo, o etc), el codigo deberia funcionar
Eso es algo que desde que vi que algo andaba mal, me estaba preguntando.



ah 16f887 y oscilador externo de 10. no tenia de 4... aunque esta definido como
define osc 10
Entonces te falta declarar que usaras los puertos como digitales...
Escribe esto antes del código de tu programa.

ANSEL = 0 ; Puerto A como digital
ANSELH = 0 ; Puerto B como digital

Con eso te debe funcionar el programa.

Suerte.
 
Última edición:
lubeck ya tengo la solución al problema con los descriptores USB para PBP3
OK. Se trata de hacer lo siguiente...

1.- Descomprimir el archivo USBDEMOdesc.bas que adjunto en este post en C:\PBP3\USB18
2.- Generar un programa PBP con EasyHID (Yo seleccione el PIC18F4550)
3.- Copiar el archivo *.pbp generado por EasyHID dentro de la carpeta C:\PBP3\USB18
(Puede ser uno propio, pero yo use el EasyHID) :cool:
4.- Dentro del programa *.pbp hacer esta referencia al archivo de los descriptores.
include "USBDEMOdesc.bas"
5.- Compilar

Con esos pasos me compilo sin los errores que comentas...

Symbol not previously defined (USBDeviceInit) y etc. :)

;***************************************************
Estube viendo que archivos son los necesarios para crear proyectos con carpetas independientes.
Estos son los archivos que se tienen que agregar dentro de la carpeta de un proyecto...

usb_dev.asm
usb_hid.asm
usb_mem.asm
usb_dev.inc
usb_hid.inc
y por supuesto USBDEMOdesc.bas

Adjunto también el ejemplo con simulación y proyecto VB6

PD. También lo pude compilar con MCS Plus 3 y PBP 2.60

Suerte.
 

Adjuntos

  • USBDEMOdesc.rar
    2.2 KB · Visitas: 227
  • USB_Test.rar
    148.1 KB · Visitas: 133
Última edición:
Eso es algo que desde que vi que algo andaba mal, me estaba preguntando.




Entonces te falta declarar que usaras los puertos como digitales...
Escribe esto antes del código de tu programa.

ANSEL = 0 ; Puerto A como digital
ANSELH = 0 ; Puerto B como digital

Con eso te debe funcionar el programa.

Suerte.


Chicos, simplemente gracias. ese era el problema, definir como todo digital... en fin, seguiré con más asuntos.

Un saludo y gracias por todo!!!
 
Deca
En todos los pic que he visto que tienen entradas analogas, al encenderse siempre se inician como analogos y si se ocupan como digitales hay que configurarlos... generalmente es el registro como CmCon, Ansel, ADCOn...

Dark

Ahora siii... (y) ya funciono...

Es hora de jubilar al PBP2.5 y el MCS3.0... la patria les estará muy agradecida...:D


Gracias Dark....:apreton:

PD. Lo que no entiendo es como los de Melabs pasaron por alto ese error tan garrafal...:enfadado:
 
Última edición:
Buenas amigos del foro, tengo tiempo sin pasar por aca y he tenido una nueva idea, bueno no es nueva porque ya de seguro existe pero si la quería compartir con ustedes y no se si les parece interesante, se trata sobre un control de domotica via Internet. La idea que tuve es si se podia llegar a crear un servidor en VB6 y colgarlo en la red para transmitir datos a un PIC via Internet desde el servidor y poder enceder y apagar las luces de una casa a distancia, yo lo imagine con mi tablet que me compre y se veria mas comodo, algo asi es lo que planteo.
 

Adjuntos

  • Control domotico.JPG
    Control domotico.JPG
    63.8 KB · Visitas: 79
Hola Nano...

Efectivamente no es nuevo, y si es posible... a grandes rasgos hay dos maneras... con visualnet puedes hacer una especie de pagina que cuelgas en algun servidor y puedes acceder desde cualquier computadora, y la otra es hacer con vb6 un cliente y servidor con el winsock...

la conexion del pic con un router puedes utilizar una pc y comunicacion serial (usart o usb) o venden modulos para conectarte directamente...

por ahi hay varios proyectos echos... busca el blog del compañero meta....
 
Atrás
Arriba