DDS using external spi Dac

It takes about 100us to transmitt a byte with software spi @ 1MIPS. At 16MIPS, you can cut that down to about 10us. For your spi, you need to transmit two bytes -> 20us per point. You have 1024 points -> 20ms per cycle, or 50hz.

You can then figure out how to speed it up / down, or to compromise it to get to what you want, as the math is basically the same.