Generate sine wave, using analog output

Dependencies:   mbed WaveGen

Dependents:   WaveGen

Committer:
aaronice
Date:
Fri Feb 07 00:27:55 2014 +0000
Revision:
0:fc7729e19c10
Child:
1:6b531bf059e4
For Sine Wave Generation, FRDM-KL46Z

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aaronice 0:fc7729e19c10 1
aaronice 0:fc7729e19c10 2 #include "mbed.h"
aaronice 0:fc7729e19c10 3 AnalogOut DA(PTE30);
aaronice 0:fc7729e19c10 4 AnalogIn AD(PTB0);
aaronice 0:fc7729e19c10 5
aaronice 0:fc7729e19c10 6 Serial pc(USBTX, USBRX); // tx, rx
aaronice 0:fc7729e19c10 7
aaronice 0:fc7729e19c10 8 float da;
aaronice 0:fc7729e19c10 9 float Amp = 2.0;
aaronice 0:fc7729e19c10 10 float w = 1.0;
aaronice 0:fc7729e19c10 11 float pi = 3.14159;
aaronice 0:fc7729e19c10 12
aaronice 0:fc7729e19c10 13 void callback() {
aaronice 0:fc7729e19c10 14 // Note: you need to actually read from the serial to clear the RX interrupt
aaronice 0:fc7729e19c10 15 //int AA;
aaronice 0:fc7729e19c10 16 //int ww;
aaronice 0:fc7729e19c10 17 printf("%c\n", pc.getc());
aaronice 0:fc7729e19c10 18 wait(0.5);
aaronice 0:fc7729e19c10 19 pc.printf("Input parameter A(<1.0):\n");
aaronice 0:fc7729e19c10 20 pc.scanf("%f", &Amp);
aaronice 0:fc7729e19c10 21 pc.printf("%f\n", Amp);
aaronice 0:fc7729e19c10 22 //Amp = (float)AA;
aaronice 0:fc7729e19c10 23 pc.printf("Input parameter w:\n");
aaronice 0:fc7729e19c10 24 pc.scanf("%f", &w);
aaronice 0:fc7729e19c10 25 pc.printf("%f\n", w);
aaronice 0:fc7729e19c10 26 //w = (float)ww;
aaronice 0:fc7729e19c10 27 }
aaronice 0:fc7729e19c10 28
aaronice 0:fc7729e19c10 29
aaronice 0:fc7729e19c10 30 int main(void) {
aaronice 0:fc7729e19c10 31
aaronice 0:fc7729e19c10 32
aaronice 0:fc7729e19c10 33 pc.attach(&callback);
aaronice 0:fc7729e19c10 34
aaronice 0:fc7729e19c10 35 while(1){
aaronice 0:fc7729e19c10 36 for (float i=0; i<360; i++) {
aaronice 0:fc7729e19c10 37 da = Amp*(sin(w*i/180*pi)*0.5+0.5);
aaronice 0:fc7729e19c10 38 DA.write(da);
aaronice 0:fc7729e19c10 39
aaronice 0:fc7729e19c10 40 pc.printf("%f ",da);
aaronice 0:fc7729e19c10 41
aaronice 0:fc7729e19c10 42
aaronice 0:fc7729e19c10 43 //AD.read()*3.3;
aaronice 0:fc7729e19c10 44 }
aaronice 0:fc7729e19c10 45 //wait(3.0);
aaronice 0:fc7729e19c10 46 }
aaronice 0:fc7729e19c10 47 }