Basic_sine_wave_generator

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

Fork of 4180_proj by ECE4180proj

Revision:
4:1b82016459ff
Parent:
3:bb920a8eb590
Child:
5:38c6ba85a6ec
--- a/main.cpp	Fri Nov 27 02:03:52 2015 +0000
+++ b/main.cpp	Fri Nov 27 02:25:53 2015 +0000
@@ -26,8 +26,13 @@
 float x;
 
 //-----User Specified, change it if needed-------
-int waveform_type=0; //0 for sine, 
-float freq,amp=1,offset=0.5;
+int waveform_type; //0 for sine, 
+float freq,amp,offset,duty_cycle; 
+
+/*
+  sine wave use: freq,amp,offset
+  square wave use: freq,amp,offse and duty_cycle
+*/
 
 
 void initialize_LCD(){
@@ -46,13 +51,29 @@
     //------if sine wave--------
     if (waveform_type==0){  
         for (int datapoint_counter=0; datapoint_counter<length_waveform; datapoint_counter++){
-            x=amp*(cos(2*pi*freq*t)+1);
-            waveform[datapoint_counter]=(uint16_t) (x*32767);      
+            x=amp/3.3*cos(2*pi*freq*t)+offset/3.3;
+            waveform[datapoint_counter]=(uint16_t) (x*65535);      
             t += time_interv;
         }
     }
     
-    //------if other wave--------   
+    //------if square wave--------   
+    /*if (waveform_type==1){  
+        for (int datapoint_counter=0; datapoint_counter<length_waveform; datapoint_counter++){
+            if (datapoint_counter>=length_waveform){
+               
+                
+                
+            }
+            
+            
+            waveform[datapoint_counter]=(uint16_t) (x*32767);      
+        
+        }*/
+
+    
+    
+    
 }
 
 void output_waveform_datapoints(){  //Output the data points using DAC (pin18)
@@ -68,8 +89,8 @@
  
 int main(void){
     waveform_type=0; //0 for sine, 
-    freq=2; //Hz
-    amp=1; //Sacle factor, 1=full range
+    freq=10; //Hz
+    amp=0.5; //Sacle factor, 1=full range
     offset=0.5;
     initialize_LCD();
     generate_waveform_datapoints();