Autor Tema: salida de 12 bit por puerto c y d en ORDEN!  (Leído 1818 veces)

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

Desconectado fidodido18

  • PIC18
  • ****
  • Mensajes: 312
salida de 12 bit por puerto c y d en ORDEN!
« en: 30 de Marzo de 2009, 11:53:21 »
Hola a todos,

tengo una duda, respecto a la salida de un PIC 16f877a.

COmo todos saben el puerto C y D estan mezclados, y necesito que mi salida que es un numero de 12 bit salgan en orden por el puerto c y d.

Es decir:

PIN_D7: bit0
PIN_D6: bit1
PIN_D5: bit2
PIN_D4: bit3
PIN_C7: bit4
PIN_C6: bit5
PIN_C5: bit6
PIN_C4: bit7
PIN_D3: bit8
PIN_D2: bit9
PIN_D1: bit10
PIN_D0: bit11

el bit 12 siempre es tierra por eso lo omito, bueno mi pregunta es como configuro en este orden de salida, para que nada mas sea decir ouput_XYZ(el numero de 11 bit), si tengo alguna forma, es que no quiero que despues al hacer el impreso me quede todo en desorden, me imagino que mas de uno a tenido el problema.

Desde ya gracias!!

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: salida de 12 bit por puerto c y d en ORDEN!
« Respuesta #1 en: 30 de Marzo de 2009, 12:26:07 »
En que lenguaje C, de que empresa??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado fidodido18

  • PIC18
  • ****
  • Mensajes: 312
Re: salida de 12 bit por puerto c y d en ORDEN!
« Respuesta #2 en: 30 de Marzo de 2009, 13:35:43 »
En que lenguaje C, de que empresa??

En CCS, solo que pense que todos los programas en C se manejan igual.

tengo una solucion vaga del problema, que es hacer un numero long (16 bit) y luego hacer un BIT_TEST de cada bit de la variable y si esta en 1 hacer un OUTPUT_HIGH del pin respectivo. Hasta ahora esa es mi solucion, sin embargo si hay otra mas facil seria de gran ayuda.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: salida de 12 bit por puerto c y d en ORDEN!
« Respuesta #3 en: 30 de Marzo de 2009, 14:25:46 »
Una estructura serviria?
El papel lo aguanta todo

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: salida de 12 bit por puerto c y d en ORDEN!
« Respuesta #4 en: 30 de Marzo de 2009, 17:56:31 »
Por favor sé más específico, ¿cómo están declarados los bits? ¿Cómo tienes los datos de entrada?

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: salida de 12 bit por puerto c y d en ORDEN!
« Respuesta #5 en: 30 de Marzo de 2009, 17:59:25 »
Creo que una estructura o la asignacion de cada bit individual puede servir.

Podrias usar BIT

Código: [Seleccionar]
  #bit V1 = datoOut1.0
   #bit V2 = datoOut1.1
   #bit V3 = datoOut1.2
   #bit V4 = datoOut1.3
   #bit V5 = datoOut1.4
   #bit V6 = datoOut1.5
   #bit V7 = datoOut1.6
   #bit V8 = datoOut1.7

Eso lo uso yo, te permite enviar a un puerto los datos o bits ordenados como quieras...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado fidodido18

  • PIC18
  • ****
  • Mensajes: 312
Re: salida de 12 bit por puerto c y d en ORDEN!
« Respuesta #6 en: 30 de Marzo de 2009, 22:11:50 »
Por favor sé más específico, ¿cómo están declarados los bits? ¿Cómo tienes los datos de entrada?

bueno gracias a todos por responder,

les explico mas detallado, yo tengo que manejar un pll de 11 bit, y quiero que salga del PIC un FLEX de datos en orden, pero utilizando el puerto c y d del pic 16f877a que estan en desorden, por consiguiente tengo que sacar por esos pines los numeros de 880 a 1039 (decimales) que si los pasan a binarios dan un maximo de 11 bit.

hasta ahora mi unica solucion es preguntar bit por bit de una variable tipo LONG (16 bit) y si el bit es 0 o 1 apago o enciendo el pin deseado, estoy buscando alguna opcion donde pueda manipular los pines de salida de un puerto y llamarlo puerto_XX, para solamente colocar output_puertoXX(880), por dar un ejemplo.


 

anything