Autor Tema: Empalmar 2 bits de un puerto  (Leído 1573 veces)

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

Desconectado Protheus5

  • PIC10
  • *
  • Mensajes: 37
Empalmar 2 bits de un puerto
« en: 02 de Mayo de 2005, 05:27:00 »
Hola a todos,

    tengo la siguiente duda, haber si podeis echarme una mano;

estoy controlando un MUX 4:1 con un 18F452, y para ello tengo que emplear 2 señales de control del mux, que son el bit.0 y el bit.1 del puerto C.

Ahora mismo lo hago de la siguiente manera:

#byte puertoc = 0xf82

#bit sel0=puertoc.0
#bit sel1=puertoc.1

entonces, para seleccionar la entrada cero, hago

sel0=0;
sel1=0;

para la entrada 1:
sel0=1;
sel1=0;

y asi para las cuatro.

Mi pregunta es que si puedo mediante alguna sentencia (o una estrustura, no se bien cómo) dirigirme a esos dos bits del puerto a la vez, para poner por ejemplo:

sel=1 ó sel=3

es decir, unir ambos y no escribir el estado de los dos cada vez que cambio de canal, sino dirigirme a los 2 de golpe.

Gracias

Desconectado gauchosuizo

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 457
RE: Empalmar 2 bits de un puerto
« Respuesta #1 en: 02 de Mayo de 2005, 06:16:00 »
hola

asi como has definido los bits, yo haria lo siguiente:

puertoc = 3; //Bit 0 y 1

Tendria que funcionar y sino corrijanme.

Aloha
Saludos desde Suiza, Pablo.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Empalmar 2 bits de un puerto
« Respuesta #2 en: 02 de Mayo de 2005, 08:19:00 »
Sí, yo también creo que debiera:

#byte portc=0x06

.
.
.

portc=0;      // Entrada 0

portc=1;      // Entrada 1

portc=2;      // Entrada 2

portc=3;      // Entrada 3

Un saludo

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Empalmar 2 bits de un puerto
« Respuesta #3 en: 02 de Mayo de 2005, 11:48:00 »
Exactamente solo asigna el puerto a una variable y escribe el valor decimal directamente

Desconectado Protheus5

  • PIC10
  • *
  • Mensajes: 37
RE: Empalmar 2 bits de un puerto
« Respuesta #4 en: 02 de Mayo de 2005, 14:34:00 »
Gracias por la ayuda amigos, pero a continuación me surge otra duda:

-- yo tengo el puerto C que es de 5 pines (debido a que c6 y c7 los tengo para la comunicacion serie), de los cuales c5,c4 y c3 son para controlar un driver de displays MAX7129 (son las señales de DIN, LOAD Y CLK, respectivamente).

Bien, para controlar el MUX del que os hablo usaré c0 y c1, pero como bien decis, si me dirijo a ellos para cambiar el canal del mux, empleando la sentencia portc=0, o portc=1,... TAMBIEN CAMBIO EL ESTADO DE LAS SEÑALES DEL DISPLAY, porque afecta a todos los bits del puerto!!!  Enfurruñado

Mi intencion era cambiar el estado de c0 y c1 sin modificar a todos a la vez.

Arrrrr.... no se... a lo mejor me estoy complicando un poco, y lo que deberia hacer es directamente pin_c0=(lo que sea) y pin_c1=(lo que sea) a lo bruto, pero no se, era por ver si habia algun metodo mejor.

Muchas gracias!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Empalmar 2 bits de un puerto
« Respuesta #5 en: 02 de Mayo de 2005, 15:51:00 »
Si haces esto dejas el puerto como estaba del tercer bit en adelante, y sólo cambias los dos primeros:

portc = portc & 0xFC + un_numero_de_0_a_3

Desconectado Protheus5

  • PIC10
  • *
  • Mensajes: 37
RE: Empalmar 2 bits de un puerto
« Respuesta #6 en: 02 de Mayo de 2005, 16:11:00 »
Giño Originalidad sorprendente nocturno! Parece mentira que con las operaciones mas tontas (and, or,...)puedes conseguir lo que quieres... y yo rompiendome las cabeza....
 
Gracias a todos por el interes.

Por cierto, cuando termine el proyecto me gustaria ofreceros las fotos de todas las placas y demas mecanismos que esoty utilizando (ya que parte de el os la debo a vosotros ), pero me parece que a la hora de adjuntar archivos, tiene que ser desde una pagina web, y no directamente.

No se puede hacer de otra manera??

Un saludo a todos