Stap 2: Iets voor Nerds
Een fundamentele DDS golfvorm generator moet een phase_accumulator worden verhoogd met een phase_step op de f_clock van een frequentie.
Eerdere golfvorm generatoren met behulp van de Arduino Uno doorgevoerd DDS generatoren met een frequentie van de f_clock op basis van een timer-interrupt op 100 kHz. Dit beperkt de praktisch bruikbaar DDS golfvorm uitvoerfrequentie te f_clock /8 of golfvormen tot 12,5 kHz.
De huidige aanpak probeert te maximaliseren van de f_clock. Door de uitvoering van de lus van de DDS met behulp van een tijdje functie waarin een minimum aantal instructies cycli worden gebruikt.
Uitgang van de while lus is gebaseerd op een variabele bijgewerkt op basis van de interrupt USART Rx
De huidige terwijl lus 43 cycli neemt en de f_clock zou 16 MHz/43 = 372.09 kHz
Het beste dat we doen kunnen als de Arduino Uno afmonsteren terwijl was gebaseerd op een Reset geweest 40 instructies of 400 kHz.
f_clock/8 is 372 kHz/8 = 46.5 kHz die bijna 50 kHz is!
De code wordt uitgevoerd in "c" met behulp van Atmel Studio 6.0
De c-code implementeert een 24-bits-phase_accumulator waarvan de hogere orde 7-Bits worden gebruikt als een adres aan een 128 stap golfvorm tabel met 6-bits golfgegevens met waarden van 0x00 tot 0x1F Hex.
Gebruik de 007DDS. Hex voor het programmeren van de Arduino Uno met behulp van Avrdude.