These two links have info about the instructions themselves, which might make those macros clearer.
http://www.arm.com/files/pdf/dspconc...esentation.pdf
Thanks Pete:
Using the single cycle MAC instruction for 16 X 16 + 64 = 64, which will accumulate data very quickly, the 13 ENOB ADC will be
just enough resolution for the job. The application is in the gridtie microinverter market. We are seeing these inverters make headway in commercial 3 phase
North American grids and the problem is this: multiples of 3 inverters do not act like a single 3 phase inverter when it comes to shutdown for IEEE1547 conditions.
What are those conditions? Hi and low voltage, high and low freq and loss of phase. So my solution is a relay that will detect out-of-1547 conditions and open
a 3 phase contactor, and shut all inverters off instantly.
So yeah, single cycle MAC, with a comparison based on the accumulated value, no need to even compute the root. I still need to have a zero crossing detector to make
the same number of samples each cycle,for amplitude accuracy. I also need the zero crossing detector for accurate frequency measurements.
I've done this on 8 bit micros with 10 bit ADC's and with a lot of hard work and bit-banging and software limiting (or saturating as it is being called now) and got as good as 1% accuracy consistently in a commercial product, so I have no doubt with a fast ARM and 13 bit ENOB a2d converter, it can be done much better and faster!!!
Thanks Paul for a very cool product!
Tim
P.S. I'm still not perfectly clear on proper usage of the macro, (yes I read the material you suggested Pete) but once I get back after this camping trip in the Olympic Peninsula, I'll test it out, and figure it out!!