Autor Tema: No entiendo este comando  (Leído 2427 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Layton

  • PIC10
  • *
  • Mensajes: 4
No entiendo este comando
« 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

     

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: No entiendo este comando
« Respuesta #1 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?
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: No entiendo este comando
« Respuesta #2 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.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA


 

anything