I am planning an RGB LED strip controller built on the Raspberry Pi communicating over I2C with an ATMega328P with an Ardunio bootloader. Right now I am waiting for the USB to serial converter to be able to program the chip, so now I can not test my ideas, and I do not know if the ATMega is capable of doing so many things at once.
Normally I want the ATMega to controll the LED strip over hardware PWM, and to controll some additional RGB LEDs connected by a shift register using the ShiftPWM libary libary, and receive the colors to set the LEDs and the strip. The hard work is the color organ feature I plan: the Ardunio would have to read the analog audio input, FHT the input data for three bands using the ArduinoFHT libary, send the data to the Raspberry Pi and receive the colors from it, all this while doing the hardware and SPI PWM. Another option is not to send the audio data, but to use the chip for calculating the colors, but I prefer the first one. I want to have at least 30fps, so the whole process should take at most 1s/30=32ms time.
Is the ATMega328 capable of this clocked at 16 or 20MHz, or I am better using the msgeq7 EQ chip for the FHC?