TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: fidodido18 en 30 de Marzo de 2009, 11:53:21

Título: salida de 12 bit por puerto c y d en ORDEN!
Publicado por: fidodido18 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!!
Título: Re: salida de 12 bit por puerto c y d en ORDEN!
Publicado por: MGLSOFT en 30 de Marzo de 2009, 12:26:07
En que lenguaje C, de que empresa??
Título: Re: salida de 12 bit por puerto c y d en ORDEN!
Publicado por: fidodido18 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.
Título: Re: salida de 12 bit por puerto c y d en ORDEN!
Publicado por: MLO__ en 30 de Marzo de 2009, 14:25:46
Una estructura serviria?
Título: Re: salida de 12 bit por puerto c y d en ORDEN!
Publicado por: migsantiago 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?
Título: Re: salida de 12 bit por puerto c y d en ORDEN!
Publicado por: MGLSOFT 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...
Título: Re: salida de 12 bit por puerto c y d en ORDEN!
Publicado por: fidodido18 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.