![](/media/cache/profiles/37ec76c1599f1e673d008da0748e9e65.jpg.50x50_q85.jpg)
Generate sine wave, using analog output
main.cpp@0:fc7729e19c10, 2014-02-07 (annotated)
- 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?
User | Revision | Line number | New 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 | } |