/* Use polynomials equations to create a lookup table for Sharp GP2D12 IR rangefinders */ #include #include #include // Defs #define MAX_ENTRIES 255 // Globals unsigned char table[MAX_ENTRIES+1]; // protos void fill_table(void); unsigned char step2deg(unsigned int steps); main() { unsigned int value = 0; fill_table(); printf("\n\runsigned char lookup_table[%u] =\n\r{", MAX_ENTRIES+1); for (value = 0; value < MAX_ENTRIES ; value++) { if (!(value % 10)) printf("\r\n"); printf(" %u", table[value]); // Don't print comma for last entry if (!(value == MAX_ENTRIES)) printf(", "); } printf("\n\r}"); } void fill_table(void) { unsigned int i = 0; for (i = 0 ; i <= MAX_ENTRIES ; i++) { if (i == 0) table[i] = 0; else table[i] = (float)3402.5 * pow((double)i, (double)-1.0427); //debug //printf("\n\r%i - %d", i, table[i]); } }