TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: poi5on en 22 de Febrero de 2010, 15:15:59

Título: Variables Float de 16 bits
Publicado por: poi5on en 22 de Febrero de 2010, 15:15:59
Hola amigos, gusto en saludarles.

Quisiera saber si hay alguna manera de guardar variables float de 16 bits, ya que tengo que guardar una matriz muy grande de números que oscilan entre -1 y 1 que corresponden a los pesos de una red neuronal y guardar la variable completa de 32bits ocupa demasiado espacio.

O si alguien conoce alguna forma de hacer esto ocupando el menor espacio posible para guardar una red de 10000 neuronas.

Saludos cordiales
Título: Re: Variables Float de 16 bits
Publicado por: migsantiago en 22 de Febrero de 2010, 15:30:01
Puedes normalizarlos a números enteros para guardarlos. Para recuperarlos los "desnormalizas".

Asigna el valor de -1.0 a -32767,  0.0 a 0 y +1.0 a 32767.

Ejemplo, un peso vale 0.80765...

0.80765 * 32768 = 26464.0752

Pero lo guardas en la rom como 26464 (signed int 16). Al recuperarlo solo divídelo entre 32767.