TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Layton en 01 de Abril de 2010, 14:07:05
-
hola, a ver si me podeis explicar esto que no lo entiendo:
(PIC16F628A)
LEDS VAR PORTB
TRISB=0
LEDS=1 'esto equivale a %00000001
eso lo entiendo... pero me ha dado por probar y he puesto un 2 luego un 3, 4, 5 etc... y no sale esto
con 1 %00000001
con 2 %00000010
con 3 %00000100
(que seria lo logico)
si no que se "enciende" (se pone rojo) el puerto 1 luego el 1 y el 2 a la vez, luego el 3 solo .... etc
saludos y gracias
-
Intente escribiendo directamente al puerto (PORTB=1,2,3, etc) sin crear el alias.
Es extraño que le suceda, ya que anteriormente se había utilizado de esa manera (para un 16f872, 16F628 y 628A, entre otros) y no había problema.
¿Qué versión del PBP utiliza?
-
hola, a ver si me podeis explicar esto que no lo entiendo:
(PIC16F628A)
LEDS VAR PORTB
TRISB=0
LEDS=1 'esto equivale a %00000001
eso lo entiendo... pero me ha dado por probar y he puesto un 2 luego un 3, 4, 5 etc... y no sale esto
con 1 %00000001
con 2 %00000010
con 3 %00000100
(que seria lo logico)
si no que se "enciende" (se pone rojo) el puerto 1 luego el 1 y el 2 a la vez, luego el 3 solo .... etc
saludos y gracias
Hola amigo, supongo que tu problema radica en que estas confundiendo un poco esto, ya que lo que hace el compilador es que cuando pones
1 obtienes %00000001
2 obtienes %00000010
3 obtienes %00000011
4 obtienes %00000100
4 obtienes %00000101
.
.
.
255 obtienes %11111111
es decir el compilador automaticamente convierte el valor decimal a un valor binario, que es el unico que conocen los dispositivos digitales, no importa si el valor lo pones en valor hexadecimal, octal, binario, decimal o ascii el compilador siempre los convertirá.
Para que logres hacer lo que quieres de ir encendiendo un led a la vez debes poner como valores 1, 2, 4,8,16,32,64,128. Estos son los valores decimales que al convertirlos a binario simplemente encenderían un bit a la vez.