Autor Tema: crear un registro de 18 bits con con los pines del puerto b y el puerto c  (Leído 1821 veces)

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

Desconectado micronet3

  • PIC18
  • ****
  • Mensajes: 288
hola, una consulta, estoy intentando crear un unico registro que agrupe a los pines del puerto b y el puerto c.
por ejemplo

registro_nuevo[0]=1   //esto representaria al pin b0 del puerto b
registro_nuevo[15]=0 // esto representaria al pin c7 del puerto c

hasta ahora no encuentro la manera de formar este nuevo registros, tienen ustedes alguna idea con la cual pueda guiarme

gracias y saludos


 

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: crear un registro de 18 bits con con los pines del puerto b y el puerto c
« Respuesta #1 en: 27 de Abril de 2010, 20:25:10 »
En la ayuda de CCS viene lo siguiente, espero sea lo que buscas.


make16( )
--------------------------------------------------------------------------------
Syntax:
 i16 = MAKE16(varhigh, varlow)
 
Parameters:
 varhigh and varlow are 8 bit integers.

Returns:
 A 16 bit integer

Function:
 Makes a 16 bit number out of two 8 bit numbers.  If either parameter is 16 or 32 bits only the lsb is used.  Same as: i16 = (int16)(varhigh&0xff)*0x100+(varlow&0xff) except it is done with two byte moves.

Availability:
 All devices

Requires:
 Nothing

Examples:
 long x;

int hi,lo;
x = make16(hi,lo);


Saludos
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado micronet3

  • PIC18
  • ****
  • Mensajes: 288
Re: crear un registro de 18 bits con con los pines del puerto b y el puerto c
« Respuesta #2 en: 27 de Abril de 2010, 20:47:33 »
gracias amigo, entonces esto quedaria asi.

int16 registro;
registro=make16(portc,portb);

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: crear un registro de 18 bits con con los pines del puerto b y el puerto c
« Respuesta #3 en: 27 de Abril de 2010, 21:03:38 »
En la ayuda de CCS viene lo siguiente, espero sea lo que buscas.


input_x( )

--------------------------------------------------------------------------------
Syntax:
value = input_a()

value = input_b()

value = input_c()

value = input_d()

value = input_e()

value = input_f()

value = input_g()

value = input_h()

value = input_j()

value = input_k()

Parameters:
 None

Returns:
 An 8 bit int  representing the port input data.

Function:
 Inputs an entire byte from a port. The direction register is changed in accordance with the last specified #USE *_IO directive. By default with standard I/O before the input is done the data direction is set to input.

Availability:
All devices.

Requires:
Nothing

Examples:
data = input_b();

Saludos
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: crear un registro de 18 bits con con los pines del puerto b y el puerto c
« Respuesta #4 en: 09 de Mayo de 2010, 00:26:07 »
si no me equivoco lo que KALLITOS quiso decir es lo siguiente

Código: [Seleccionar]
registro=make16(input_c(),input_b());
de lo contrario corrijanme.
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

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: crear un registro de 18 bits con con los pines del puerto b y el puerto c
« Respuesta #5 en: 09 de Mayo de 2010, 01:12:57 »
Estas en lo correcto :wink:
Se puede hacer como dijiste vos
registro=make16(portc,portb);
pero previamente hay q hacer unas definiciones indicando la direccion de memoria del puerto b y c.. a la larga es mas facil como dice KALLITOS.
saludos!!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: crear un registro de 18 bits con con los pines del puerto b y el puerto c
« Respuesta #6 en: 09 de Mayo de 2010, 01:49:51 »
Pero hay algo que no entiendo; estás pidiendo un registro de 18 bits, y con la suma de dos puertos llegas como mucho a 16.