Autor Tema: :-/ Se puede asignar BIT’s a diferentes puertos en PBP? :-/  (Leído 3520 veces)

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

Desconectado fvparg

  • PIC10
  • *
  • Mensajes: 21
:-/ Se puede asignar BIT’s a diferentes puertos en PBP? :-/
« en: 28 de Enero de 2007, 21:15:19 »
Hola a todos.
Mi pregunta es la siguiente:
Se puede asignar BIT's a puertos diferentes por ejemplo de manera que el PortA.6 tenga un valor 00000001, PortB.7 tenga 00000010, PortB.6 tenga 00000100, PortB.5 tenga 00001000 y PortB.4 tenga 00010000.
Y se pueda controlar desde una variable directamente.
O sea por ejemplo tengo la variable setup y quiero poner un 1 en el portb.7
Setup=%00000010

Gracias a todos de antemano.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: :-/ Se puede asignar BIT’s a diferentes puertos en PBP? :-/
« Respuesta #1 en: 28 de Enero de 2007, 21:22:14 »
Propiamente meterle bits a los puertos no creo, mas bien puedes controlar el puerto individualmente y al ser este un BIT de un BYTE en este caso el PORTB solo le puedes asignar 2 valores o 1 o 0.

Por el contrario a todo el Puerto si lo puedes controlar como una variable BYTE -siempre y cuando sea de 8 bits-. Por lo que alcanzo  a entender quieres asignarle el valor de SETUP a un Bit se podria hacer asignando el Puerto a esa variable.

PORTB = SETUP

donde SETUP segun veo vale %00000010

entonces como resultado se encendera el PORTB.1 ya que en esa posicion se encuentra el 1 si quisieras hacerlo como dices en el PORTB.7 deberia valer:

SETUP = %10000000
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: :-/ Se puede asignar BIT’s a diferentes puertos en PBP? :-/
« Respuesta #2 en: 28 de Enero de 2007, 21:31:34 »
Esa información viene en el manual del PBP.
Puedes asignar valores que desees a las diferentes variables que estén preestablecidas o las que hayas creado.

Te recomiendo leas el manual, ahí está muy bien explicado (alias, symbols, etc).
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 fvparg

  • PIC10
  • *
  • Mensajes: 21
Re: :-/ Se puede asignar BIT’s a diferentes puertos en PBP? :-/
« Respuesta #3 en: 29 de Enero de 2007, 00:33:27 »
Hola. Gracias por responder.

Encontré esta única manera de hacer lo que necesito, aunque funciona como necesito no es muy practica y ocupa espacio de mas por cada instrucción.
Hay alguna otra forma mejor de hacerlo?
Gracias.

setup VAR BYTE

a1 VAR PORTB.0
a2 VAR PORTB.2
a3 VAR PORTB.4

TRISB=%11101010


inicio:

setup=%00000001
a1=setup.0
a2=setup.1
a3=setup.2
Pause 300
setup=%00000010
a1=setup.0
a2=setup.1
a3=setup.2
Pause 300
setup=%00000100
a1=setup.0
a2=setup.1
a3=setup.2
Pause 300
GoTo inicio

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: :-/ Se puede asignar BIT’s a diferentes puertos en PBP? :-/
« Respuesta #4 en: 29 de Enero de 2007, 00:40:10 »
Pues si, asi como te dije asignando al PORTB el valor de SETUP.

PORTB = SETUP es lo mismo. que haces solo que tu declaras los puertos a un alias y luego a l alias el valor de los bits de setup. y hacer PORTB=SETUP es hacer que los bits de cada cual encajen con cada quien.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado ascii

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 131
Re: :-/ Se puede asignar BIT’s a diferentes puertos en PBP? :-/
« Respuesta #5 en: 29 de Enero de 2007, 00:54:53 »
Opino igual que navaismo creo que ocupas muchas lineas, para algo que se puede hacer mas simple. En lo personal lo haria de la siguiente manera.



TRISB=%11101010

inicio:

PORTB=%00000001
Pause 300
.......etc
GoTo inicio

Desconectado fvparg

  • PIC10
  • *
  • Mensajes: 21
Re: :-/ Se puede asignar BIT’s a diferentes puertos en PBP? :-/
« Respuesta #6 en: 29 de Enero de 2007, 01:23:55 »
Hola.
Si. Se que se puede hacer así. El tema es que necesito agrupar los puertos de manera que me coincida en la secuencia de los bits por cada valor.
Por ejemplo yo tengo el porta.6 que tiene el valor 1 (00000001) y tengo el portb.7 que tiene el valor 2 (00000010) y así sucesivamente. No es que tengo el port b completo a mi disposición sino si seria mas fácil con utilizar PORTB=%00000001 y PORTB=00000010
Tengo varios puertos en una disposicion y tengo que agruparlos para que me deán los números.

La asignación de los puertos es así:

PortA.6 tiene el valor 1    (00000001)
PortB.7 tiene el valor 2    (00000010)
PortB.6 tiene el valor 4    (00000100)
PortB.5 tiene el valor 8    (00001000)
PortB.4 tiene el valor 16  (00010000)
PortA.7 tiene el valor 32  (00100000)
PortA.2 tiene el valor 64  (01000000)

Desconectado Y@el

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 415
Re: :-/ Se puede asignar BIT’s a diferentes puertos en PBP? :-/
« Respuesta #7 en: 29 de Enero de 2007, 01:42:25 »
Hola a todos.
Mi pregunta es la siguiente:
Se puede asignar BIT's a puertos diferentes por ejemplo de manera que el PortA.6 tenga un valor 00000001, PortB.7 tenga 00000010, PortB.6 tenga 00000100, PortB.5 tenga 00001000 y PortB.4 tenga 00010000.
Y se pueda controlar desde una variable directamente.
O sea por ejemplo tengo la variable setup y quiero poner un 1 en el portb.7
Setup=%00000010

Gracias a todos de antemano.


Hola,

Si lo que quieres es usar a Setup, para asignar una serie de valores a diferentes puertos. Puedes usar ASM.

y tendras el mismo efecto:
Código: [Seleccionar]
ASM
btfsc _setup,0
bsf PORTA,6
btfsc _setup,1
bsf PORTB,7
btfsc _setup,2
bsf PORTB,6
btfsc _setup,3
bsf PORTB,5
btfsc _setup,4
bsf PORTB,4
btfsc _setup,5
bsf PORTA,7
btfsc _setup,5
bsf PORTA,2
ENDASM
« Última modificación: 29 de Enero de 2007, 01:46:19 por Yoel_Ocmin »

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: :-/ Se puede asignar BIT’s a diferentes puertos en PBP? :-/
« Respuesta #8 en: 29 de Enero de 2007, 01:46:47 »
Y si mejor nos dices como para que lo quieres, ya que nos estas confundiendo mucho.Segun yo un BIT solo puede tener 2 valores 1 o 0 no mas.

como nos dices que lo haces es igual a lo que te hemos estado diciendo:

Citar
a1 VAR PORTB.0
a2 VAR PORTB.2
a3 VAR PORTB.4

TRISB=%11101010


inicio:

setup=%00000001
a1=setup.0
a2=setup.1
a3=setup.2
Pause 300
setup=%00000010
a1=setup.0
a2=setup.1
a3=setup.2
Pause 300
setup=%00000100
a1=setup.0
a2=setup.1
a3=setup.2
Pause 300
GoTo inicio


despues de la etiqueta inicio SETUP vale 1 o %00000001 y segun asignas

a1 vale 1 osea el portb.0 tiene un 1 o lo que es igual a activarlo
a2 vale 0 osea el portb.2 tiene un cero o lo papagas
a3 vale 0 osea el portb.4 tiene un cero o lo pagas

esperas 300mS y ahora

a1 vale 0  apagas RB0
a2 vale 1  activas RB2
a3 vale 0 apagas RB4

y asi sucesivamente no es que le metas el valor decimal 2 al Bit del PORTB es por ello que te deciamos que si ponias el PORTB = al dato es prcticamente lo mismo.
« Última modificación: 29 de Enero de 2007, 01:55:06 por navaismo »
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Y@el

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 415
Re: :-/ Se puede asignar BIT’s a diferentes puertos en PBP? :-/
« Respuesta #9 en: 29 de Enero de 2007, 01:54:17 »
Creo que te he entendido...

De ser asi.... tal vez esto te sirva.

Código: [Seleccionar]
setup VAR byte

    TRISB=%11101010 
inicio:
    setup=%00000001
    GOSUB ver_setup
    pause 300
    setup=%00000010
    GOSUB ver_setup
    Pause 300
    setup=%00000100
    GOSUB ver_setup   
    pause 300
    goto inicio

ASM
test_setup:
btfsc _setup,0
bsf PORTA,6
btfsc _setup,1
bsf PORTB,7
btfsc _setup,2
bsf PORTB,6
btfsc _setup,3
bsf PORTB,5
btfsc _setup,4
bsf PORTB,4
btfsc _setup,5
bsf PORTA,7
btfsc _setup,6
bsf PORTA,2

btfss _setup,0
bcf PORTA,6
btfss _setup,1
bcf PORTB,7
btfss _setup,2
bcf PORTB,6
btfss _setup,3
bcf PORTB,5
btfss _setup,4
bcf PORTB,4
btfss _setup,5
bcf PORTA,7
btfss _setup,6
bcf PORTA,2
ret
ENDASM           

Claro esta que de esta manera te sirve mas, ya que podrias configurar los 7 Estados de Setup.

Saludos,

Yoel

Desconectado fvparg

  • PIC10
  • *
  • Mensajes: 21
Re: :-/ Se puede asignar BIT’s a diferentes puertos en PBP? :-/
« Respuesta #10 en: 11 de Febrero de 2007, 01:07:55 »
Hola. Gracias a todos por la ayuda que me dieron. :-)

Lo solucione de la siguiente forma:

setup VAR BYTE

a1 VAR PORTB.0
a2 VAR PORTA.2
a3 VAR PORTA.4
a4 VAR PORTB.4

TRISB=%11100000
TRISA=%11100000

‘programa principal.
Inicio:
setup=%00000001 : gosub setup ‘seteo de puertos

setup=%00000011 : gosub setup ‘seteo de puertos

setup=%00000100 : gosub setup ‘seteo de puertos

Goto inicio


estado:
a1=setup.0
a2=setup.1
a3=setup.2
a4=setup.3
Return

Esto es solo un ejemplo de cómo funciona! En el uso que le doy yo me funciona perfecto. :mrgreen:
Gracias nuevamente a todos.