Hello Experts,
This application uses a TMS320F28386
I am trying to run a filter algorithm in the CLA that requires long doubles (64-bit floats). The macro to run this is as follows:
#define RunFilter( Filter, InputData ) \
Filter.Uz = InputData; \
Filter.Yz = ( (Filter.Uz + Filter.Uz2) * Filter.A0A2 ) \
+ ( (Filter.Uz1 - Filter.Yz1) * Filter.A1B1 ) \
+ (Filter.Yz2 * Filter.B2); \
Filter.Uz2 = Filter.Uz1; \
Filter.Uz1 = Filter.Uz; \
Filter.Yz2 = Filter.Yz1; \
Filter.Yz1 = Filter.Yz; \
Filter.Out = Filter.Yz
All elements above are 64-bit long doubles
When I include the filter in the CLA ISR, the required CLA program RAM increases considerably, to the point where I exceed the allocated RAM. If I delete other functions and increase the allocated CLA program RAM (for the sake of testing) I can get the program to fit into RAM, but then the execution takes too long and I overrun the ISR.
Is there any way to overcome this in the CLA, or does the CLA just not run with 64 bit long doubles?
Thank you,
Andy Barnett