y si es correcto donde quedaria la parte alta y baja de los bit, en data[0]; ? o en data[1]; ?
Un saludo.
Título: Re: rotar un vector
Publicado por: migsantiago en 04 de Mayo de 2009, 18:11:28
Hola Pepe
¿A qué te refieres con parte alta y baja de los bit? Creo que te refieres a en qué parte inserta el bit, data[0] o data [1]. Leyendo el manual de CCS:
Bit 0 of the lowest byte in RAM is treated as the LSB.
Es decir que el bit se insertará en el bit 0 de data[0] si es que usas shift_left(). Si usaras shift_right() entonces el bit se insertará en el bit 7 de data[1], según entiendo.
Esto tiene que ver con la forma en que se almacenan las variables mayores a 8 bits en memoria ram (big endian y little endian).
shift_left(&data[0],2,bit); 'data' a secas es un apuntador.
Título: Re: rotar un vector
Publicado por: MLO__ en 04 de Mayo de 2009, 23:26:29
Ah.
Claro, yo la tengo dentro de un for
Código: C#
for(l=0;l<=31;l++)
{
#ifndef PRUEBA
output_bit(DATA, shift_left(&row_aux[k],4,0));
#else
off(DATA);
#endif
off(CLK);
on(CLK);
}
Ahi si es necesario el &.
Ok.
Título: Re: rotar un vector
Publicado por: migsantiago en 05 de Mayo de 2009, 11:36:39
Exacto, con índice sí lleva ampersand. :mrgreen:
Título: Re: rotar un vector
Publicado por: micro_pepe en 06 de Mayo de 2009, 18:50:19
Gracias por las respuestas.
Con la instruccion de rotacion, se rotan 16 bit, me referia de esa palabra de 16 bit, donde queda el bit de menos peso, b0 y donde el de mayor peso, b15.
De la respuesta de migsantiago deduzco que el bo es el bo de data[0], y el b15 el b7 de data[1].
Saludos.
Título: Re: rotar un vector
Publicado por: migsantiago en 06 de Mayo de 2009, 21:18:22
Sí, el bit 0 de data[0] es el que entra con shift_left().
Título: Re: rotar un vector
Publicado por: micro_pepe en 07 de Mayo de 2009, 17:49:02
Sigo con los vectores, no he querido abrir otro hilo. La duda es si seria correcto hacer esto:
definir la variable:
int1 dato[16];
operar con el vector de bit, y despues usar 'dato' como una variable tipo int16:
por ejemplo dato=0x1234;
Un saludo.
Título: Re: rotar un vector
Publicado por: migsantiago en 07 de Mayo de 2009, 19:34:16
CCS no permite arreglos de bits en su versión 3.x. No sé si ya se pueda en la 4.x.
EDITO:
A partir de alguna versión que salió en junio 2008 ya se pueden usar arreglos de bits. :-/
Citar
Arrays of bits (INT1) in RAM are now supported. Pointers to bits are not permitted.
Título: Re: rotar un vector
Publicado por: MLO__ en 07 de Mayo de 2009, 22:22:07
Sera que algun dia se podra apuntar a una constante? o eso queda solo en mi imaginacion.