/* p7_7.c Use DAC to generate sine wave * This program calculates the lookup table to generate a * sine wave output through a DAC. An 8-bit parallel input * DAC (TLC7524) is connected to P4. The DAC input latch * is put in transparent mode by grounding /CS and /WR. * * Tested with Keil 5.20 and MSP432 Device Family Pack V2.2.0. */ #include "msp.h" #include void delayMs(int n); #define WAVEFORM_LENGTH 256 int sinewave[WAVEFORM_LENGTH]; int main(void) { int i; float fRadians; const float M_PI = 3.1415926535897; /* construct data table for a sine wave */ fRadians = ((2 * M_PI) / WAVEFORM_LENGTH); for (i = 0; i < WAVEFORM_LENGTH; i++) { sinewave[i] = 127 * (sinf(fRadians * i) + 1); } /* Configure P4 as output */ P4->SEL0 &= ~0xFF; P4->SEL1 &= ~0xFF; P4->DIR |= 0xFF; while (1) { for (i = 0; i < WAVEFORM_LENGTH; i++) { /* write value of i to DAC0 */ P4->OUT = sinewave[i]; delayMs(1); /* delay 1ms */ } } } /* delay milliseconds when system clock is at 3 MHz */ void delayMs(int n) { int i, j; for (j = 0; j < n; j++) for (i = 250; i > 0; i--); /* delay 1 ms */ }