Basic_sine_wave_generator

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

main.cpp

Committer:
taoqiuyang
Date:
2015-11-27
Revision:
1:fb8f053747d6
Parent:
0:52af3c50f548
Child:
2:cc462c2a54f6

File content as of revision 1:fb8f053747d6:

#include "mbed.h"
#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.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){
        
        
        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);
        }*/
    }
}