init

Dependencies:   mbed

Committer:
bcostm
Date:
Wed Feb 12 16:12:46 2014 +0000
Revision:
0:c7a485a2cf28
Child:
1:7eaa2a1e9e17
Initial version.

Who changed what in which revision?

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