Basic_sine_wave_generator
Dependencies: mbed 4DGL-uLCD-SE mbed-rtos AD5206
main.cpp
- Committer:
- taoqiuyang
- Date:
- 2015-11-27
- Revision:
- 2:cc462c2a54f6
- Parent:
- 1:fb8f053747d6
- Child:
- 3:bb920a8eb590
File content as of revision 2:cc462c2a54f6:
#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; uint16_t 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(){ float t=0; time_interv=1.0/freq/length_waveform; 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); aout.write_u16(waveform[datapoint_counter]); t += time_interv; wait(time_interv); } } void output_waveform_datapoints(){ } int main(void){ initialize_LCD(); generate_waveform_datapoints(); while (1){ generate_waveform_datapoints(); output_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); }*/ } }