Hi,
This is my code:
#define NUMBER_OF_ROWS 50 #define NUMBER_OF_COLS 2 unsigned int Array[NUMBER_OF_ROWS] [NUMBER_OF_COLS] = { {100,50}, {20 ,10 }, {16 , 8 }, {14 , 7 }, {12 , 6 }, {11 , 5.5 }, {10 , 5 }, {9.1, 4.55}, {2 , 1 } and so on until 50 rows..};
The problem is I have 50 elements needed for a lookup table, but the following error occur: Array.h(57): error C242: 'array[]': too many initializers
When I initialize number of rows to 45, no error prompt. I need to use all the 50 elements. Is this the only way for me to create a lookup table? Can someone guide me on using more simpler method? Please help me. Thanks.
Yea, the floating values work with my code. I don't want to store inside the code because I might change the value according to the table. That is why I need to create lookup table. The problem is, I can't store more than 45 elements. Is there anything I can do or perhaps other than array?
Floating point values can be stored - and then retrieved - from an unsigned int??? Are you really, really sure? Note that the compiler has to "downgrade" from float to int when assigning to an int. So having the value 9.1 in the source code will just trick a developer into believing you have an array with that value when in reality you haven't.
Have you considered looking at the memory map of your processor? Exactly which memory region do you want the compiler to store your 50*2*2 = 200 byte large array in? Are you using a memory model where all variables are stored in XRAM?