program to test exporting mbed-dev

Dependencies:   mbed-dev

Fork of FONA_CellPhone by Michael Baker

Committer:
michaelVisimid
Date:
Wed Feb 28 00:11:36 2018 +0000
Revision:
20:7af85396d035
Parent:
18:d52017f1d087
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
michaelVisimid 18:d52017f1d087 1 #include "mbed.h"
George windoge T 11:eb8938e62739 2
michaelVisimid 20:7af85396d035 3 #if !DEVICE_ANALOGOUT
michaelVisimid 20:7af85396d035 4 #error You cannot use this example as the AnalogOut is not supported on this device.
michaelVisimid 20:7af85396d035 5 #else
michaelVisimid 20:7af85396d035 6 AnalogOut my_output(PA_4);
michaelVisimid 20:7af85396d035 7 #endif
George windoge T 11:eb8938e62739 8
michaelVisimid 20:7af85396d035 9 #define PI (3.141592653589793238462)
michaelVisimid 20:7af85396d035 10 #define AMPLITUDE (1.0) // x * 3.3V
michaelVisimid 20:7af85396d035 11 #define PHASE (PI * 1) // 2*pi is one period
michaelVisimid 20:7af85396d035 12 #define RANGE (0x7FFF)
michaelVisimid 20:7af85396d035 13 #define OFFSET (0x7FFF)
michaelVisimid 20:7af85396d035 14
michaelVisimid 20:7af85396d035 15 // Configuration for sinewave output
michaelVisimid 20:7af85396d035 16 #define BUFFER_SIZE (360)
michaelVisimid 20:7af85396d035 17 uint16_t buffer[BUFFER_SIZE];
michaelVisimid 20:7af85396d035 18
michaelVisimid 20:7af85396d035 19 void calculate_sinewave(void);
michaelVisimid 20:7af85396d035 20
George windoge T 11:eb8938e62739 21 int main() {
michaelVisimid 20:7af85396d035 22 printf("Sinewave example\n");
michaelVisimid 20:7af85396d035 23 calculate_sinewave();
michaelVisimid 20:7af85396d035 24 while(1) {
michaelVisimid 20:7af85396d035 25 // sinewave output
michaelVisimid 20:7af85396d035 26 for (int i = 0; i < BUFFER_SIZE; i++) {
michaelVisimid 20:7af85396d035 27 my_output.write_u16(buffer[i]);
michaelVisimid 20:7af85396d035 28 wait_us(10);
George windoge T 11:eb8938e62739 29 }
George windoge T 11:eb8938e62739 30 }
George windoge T 11:eb8938e62739 31 }
michaelVisimid 20:7af85396d035 32
michaelVisimid 20:7af85396d035 33 // Create the sinewave buffer
michaelVisimid 20:7af85396d035 34 void calculate_sinewave(void){
michaelVisimid 20:7af85396d035 35 for (int i = 0; i < BUFFER_SIZE; i++) {
michaelVisimid 20:7af85396d035 36 double rads = (PI * i)/180.0; // Convert degree in radian
michaelVisimid 20:7af85396d035 37 buffer[i] = (uint16_t)(AMPLITUDE * (RANGE * (cos(rads + PHASE))) + OFFSET);
michaelVisimid 20:7af85396d035 38 }
George windoge T 11:eb8938e62739 39 }