Basic_sine_wave_generator
Dependencies: mbed 4DGL-uLCD-SE mbed-rtos AD5206
Diff: main.cpp
- Revision:
- 1:fb8f053747d6
- Parent:
- 0:52af3c50f548
- Child:
- 2:cc462c2a54f6
--- a/main.cpp Wed Nov 25 15:24:52 2015 +0000 +++ b/main.cpp Fri Nov 27 00:35:09 2015 +0000 @@ -1,26 +1,65 @@ #include "mbed.h" - -// Initialize a pins to perform analog and digital output fucntions +#include "uLCD_4DGL.h" + +// Objects for devices +Serial pc(USBTX, USBRX); +uLCD_4DGL lcd(p13, p14, p15); AnalogOut aout(p18); DigitalOut dout(LED1); -const double pi = 3.1416; -float fs=100; -float offset=0.5; +const double pi = 3.14; +float time_interv; uint16_t sample = 0; +int length_waveform=1000; +float waveform[1000]; +int waveform_type=0; float freq=2; //Hz float amp=1; //Sacle factor, 1=full range +float offset=0.5; float x; +void initialize_LCD(){ + lcd.baudrate(3000000); + lcd.background_color(0); + lcd.cls(); + + lcd.printf("Initializing...\n"); + lcd.printf("Fun Generator Demo"); +} + +void generate_waveform_datapoints(){ + time_interv=1.0/freq/length_waveform; + for (float t = 0.0f; t < 1/freq; t += time_interv) { + x=amp*(cos(2*pi*freq*t)+1); + sample=(uint16_t) (x*32767); + aout.write_u16(sample);; + wait(time_interv); + } +} + + + int main(void){ + + initialize_LCD(); + generate_waveform_datapoints(); + + + + while (1){ - for (float t = 0.0f; t < 1/freq; t += 1/fs) { + + + generate_waveform_datapoints(); + + + /*for (float t = 0.0f; t < 1/freq; t += 1/fs) { x=amp*(cos(2*pi*freq*t)+1); sample=(uint16_t) (x*32767); aout.write_u16(sample);; wait(1/fs); - } + }*/ } }