what is the maximum length for matrix can be used for matrix inversion on atmega32,for example,can we implement matrix inversion for 15x15 matrix on atmega32? And if it can be done on atmega32..does this will make the atmega32 to be slower? I want to implement kalamn filter 15 states for euler angles estimation...the data of the matrix will be floating point..
Asked
Active
Viewed 87 times
1 Answers
1
Floats in the Arduino IDE are normally 4 bytes. So you can work out with a calculator that your matrix will take at least 15 x 15 x 4 bytes (900 bytes). That is out of a total of 2048 bytes of RAM on the Atmega32.
That may seem to be enough RAM, but other things, like the libraries, will also take RAM. I did an answer to a question about RAM a while back. Even a very simple sketch (in this case) took 346 bytes.
Also, your library, or whatever-it-is you are using for matrix inversion, may require RAM for variables, etc.
My suggestion would be to make your code invert a very small matrix (eg. 1 x 1) and see how much RAM that uses. Then you can extrapolate out fairly simply to how much would be needed for a larger matrix.
Nick Gammon
- 38,901
- 13
- 69
- 125