TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Layton en 01 de Abril de 2010, 14:07:05

Título: No entiendo este comando
Publicado 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

     
Título: Re: No entiendo este comando
Publicado por: Mario en 06 de Abril de 2010, 04:00:58
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?
Título: Re: No entiendo este comando
Publicado por: bigluis en 06 de Abril de 2010, 17:51: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

    

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.