AtMega/FaQ

Q. Why dou you use an 8 bit controller ATMEGA128 (the datasheet says 8-bit). Isn't the software development a bit of a pain for integer arithmetic if you want 32 bit intermediate results ?

A. very good question.

You rarely need 32 bit results. I think we only have one 32 bit variable, which is time: split to 2 words, now_upper and now, lsb being 4 usec. The reason is that we deal with physical quantities, where measurement error is in the 8..11 bit range (48..66 dB). Therefore 16 bit is enough at most places, nothing would be gained by going longer wordlength. Yes, we need to be more careful about overflows, but you need to be careful in a realtime system anyway. The C-compiler helps us a lot.

The speed is satisfactory for upto 8cyl direct ignition, sequential injection, with WBO2, LCD and other nifty things. '''Therefore AVR is one of the most affordable (footprint, cost, ease of use)

uC-s that are capable of this task''' (driving genboard v3).

NEC and Hitachi and Cygnal could be used as well, but we have working code for AVR.

For the future, we definitely look into beyond AVR uCs, while the AVR line being supported for loooong. See: BrainStorming?.