Hi all,
I'm working with "Wireless Sensor Networks" using the platform Crossbow MICA2 (www.xbow.com) + TinyOS (www.tinyos.net)
In particular, inside the MICA2 sensor node there is an ATMEL Atmega128L microcontroller ....
I want to use the hardware multiplier located inside Atmega128L microcontroller to improve the performances of my FFT algorithm under MICA2.
In particular I have this kind of instruction on my NeSC program (NeSC is a
"dialect" of C language ...):
Wr = ((int32_t)c * (int32_t)real[k+n1] - (int32_t)s * (int32_t)imag[k+n1]) >> 15;
where Wr,c,real[k+n1],s and imag[k+n1] are declared as int16_t variables.
The problem is that the computation time of above multiply is very high ... and therefore (if possible !!!) I want to improve the performances ...
On Internet I discover this document (http://www.atmel.com/dyn/resources/prod_documents/DOC1631.PDF) which describes the use of the hardware multiplier on AVR Microcontroller: the problem is that the 16-bit x 16-bit =32 bit operation is written using Assembly code, so I have to use Inline Asm inside my program and I have never used it before.