Autor Tema: Reducción de Memoria ROM  (Leído 5453 veces)

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

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Reducción de Memoria ROM
« Respuesta #15 en: 08 de Septiembre de 2018, 16:33:16 »
Puedes meter en una función:

Código: C
  1. #define ENDTABLE  34
  2. #define DATATYPE  int
  3.  
  4.    DATATYPE *p, AD1, AD2, Tx1, Tx2;
  5.  
  6.    // Comprueba que el dato no se sale del índice de la tabla
  7.    if ( AD < ADx[0] || AD > ADx[ENDTABLE] )
  8.       return;
  9.  
  10.    // Busca el índice correcto en la tabla de datos
  11.    p = ADx;
  12.    for (int i = 0; i < ENDTABLE-1; i++) {
  13.       if (AD > *p) break;
  14.       p++;
  15.    }
  16.  
  17.    // Lee la tabla de datos
  18.    AD1 = *p++;
  19.    AD2 = *p;
  20.    Tx1 = Tx[i++];
  21.    Tx2 = Tx[i];
  22.  
  23.    // Calcula el valor de la interpolación
  24.    Tm =  (AD*(Tx1 - Tx2) - Tx1*AD2 + AD1*Tx2) / (AD1 - AD2);
  25.  
  26.    return Tm;

por supuesto tendrás que cambiar el tipo de datos para ajustarlo a tu tabla.