Basic_sine_wave_generator

Dependencies:   mbed 4DGL-uLCD-SE mbed-rtos AD5206

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);
-        }
+        }*/
     }
 }