AnalogOut Test

Dependencies:   mbed

Committer:
ryood
Date:
Tue Jun 13 21:43:24 2017 +0000
Revision:
0:08b1f4a462c7
Child:
1:28154deb13f1
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryood 0:08b1f4a462c7 1 #include "mbed.h"
ryood 0:08b1f4a462c7 2
ryood 0:08b1f4a462c7 3 AnalogOut my_output1(PA_4);
ryood 0:08b1f4a462c7 4 //AnalogOut my_output2(PA_5);
ryood 0:08b1f4a462c7 5 //AnalogOut my_output3(PA_6);
ryood 0:08b1f4a462c7 6
ryood 0:08b1f4a462c7 7 #define PI (3.141592653589793238462)
ryood 0:08b1f4a462c7 8 #define AMPLITUDE (1.0) // x * 3.3V
ryood 0:08b1f4a462c7 9 #define PHASE (PI * 1) // 2*pi is one period
ryood 0:08b1f4a462c7 10 #define RANGE (0x7FFF)
ryood 0:08b1f4a462c7 11 #define OFFSET (0x7FFF)
ryood 0:08b1f4a462c7 12
ryood 0:08b1f4a462c7 13 // Configuration for sinewave output
ryood 0:08b1f4a462c7 14 #define BUFFER_SIZE (360)
ryood 0:08b1f4a462c7 15 uint16_t buffer[BUFFER_SIZE];
ryood 0:08b1f4a462c7 16
ryood 0:08b1f4a462c7 17 void calculate_sinewave(void);
ryood 0:08b1f4a462c7 18
ryood 0:08b1f4a462c7 19 int main() {
ryood 0:08b1f4a462c7 20 printf("Sinewave example\n");
ryood 0:08b1f4a462c7 21 calculate_sinewave();
ryood 0:08b1f4a462c7 22 while(1) {
ryood 0:08b1f4a462c7 23 // sinewave output
ryood 0:08b1f4a462c7 24 for (int i = 0; i < BUFFER_SIZE; i++) {
ryood 0:08b1f4a462c7 25 my_output1.write_u16(buffer[i]);
ryood 0:08b1f4a462c7 26 //my_output2.write_u16(buffer[i]);
ryood 0:08b1f4a462c7 27 //my_output3.write_u16(buffer[i]);
ryood 0:08b1f4a462c7 28 }
ryood 0:08b1f4a462c7 29 }
ryood 0:08b1f4a462c7 30 }
ryood 0:08b1f4a462c7 31
ryood 0:08b1f4a462c7 32 // Create the sinewave buffer
ryood 0:08b1f4a462c7 33 void calculate_sinewave(void){
ryood 0:08b1f4a462c7 34 for (int i = 0; i < BUFFER_SIZE; i++) {
ryood 0:08b1f4a462c7 35 double rads = (PI * i)/180.0; // Convert degree in radian
ryood 0:08b1f4a462c7 36 buffer[i] = (uint16_t)(AMPLITUDE * (RANGE * (cos(rads + PHASE))) + OFFSET);
ryood 0:08b1f4a462c7 37 }
ryood 0:08b1f4a462c7 38 }