I still remember the piece of a rectangular box with many buttons labeled 1kHz, 10kHz, 100kHz, 1MHz, and everything else in between. Oh, it also has a knob connected to a dial dividing a sector into a hundred parts with a series of 7 segments changing dial every time a button is fired– just like old school radio we see at StarTrek. We commonly call it the function generator, and it’s usually used to inject square waves into your circuits – what for? Mostly for clocking.
Here’s a new implementation of the AVR DDS function generator 2.0 (scienceprog.com); it has a different board layout and uses only through-hole components for easy construction. It has two outputs, one for a +-5V signal source and the other for a 0-10V signal source; the voltage levels of the two outputs are reconfigurable using two separate potentiometers. Like the original version, it incorporates a 2×16 LCD screen and pushes buttons for control – press a button to start and stop the signal generation. The circuit’s DAC is just a simple R-2R ladder controlled by the ATmega16.