un triangle sympathique

Dependencies:   mbed

Committer:
GabGabyz
Date:
Fri Jan 06 08:20:24 2017 +0000
Revision:
0:ab28bf24e6e2
Un triangle

Who changed what in which revision?

UserRevisionLine numberNew contents of line
GabGabyz 0:ab28bf24e6e2 1
GabGabyz 0:ab28bf24e6e2 2 #include "mbed.h"
GabGabyz 0:ab28bf24e6e2 3
GabGabyz 0:ab28bf24e6e2 4 AnalogOut my_output(PA_4);
GabGabyz 0:ab28bf24e6e2 5
GabGabyz 0:ab28bf24e6e2 6 #define PI (3.141592653589793238462)
GabGabyz 0:ab28bf24e6e2 7 #define AMPLITUDE (1.0) // x * 3.3V
GabGabyz 0:ab28bf24e6e2 8 #define PHASE (PI * 1) // 2*pi is one period
GabGabyz 0:ab28bf24e6e2 9 #define RANGE (0x7FFF)
GabGabyz 0:ab28bf24e6e2 10 #define OFFSET (0x7FFF)
GabGabyz 0:ab28bf24e6e2 11
GabGabyz 0:ab28bf24e6e2 12 // Configuration for sinewave output
GabGabyz 0:ab28bf24e6e2 13 #define BUFFER_SIZE (360)
GabGabyz 0:ab28bf24e6e2 14 //uint16_t buffer[BUFFER_SIZE];
GabGabyz 0:ab28bf24e6e2 15
GabGabyz 0:ab28bf24e6e2 16 int i;
GabGabyz 0:ab28bf24e6e2 17 /*
GabGabyz 0:ab28bf24e6e2 18 int main() {
GabGabyz 0:ab28bf24e6e2 19 while(1) {
GabGabyz 0:ab28bf24e6e2 20 // triangle output
GabGabyz 0:ab28bf24e6e2 21 for (i = 0; i < 1000; i++) {
GabGabyz 0:ab28bf24e6e2 22 i=0*i;
GabGabyz 0:ab28bf24e6e2 23 my_output.write_u16(i);
GabGabyz 0:ab28bf24e6e2 24 wait_us(100);
GabGabyz 0:ab28bf24e6e2 25 i=2*i;
GabGabyz 0:ab28bf24e6e2 26 my_output.write_u16(2*i);
GabGabyz 0:ab28bf24e6e2 27 wait_us(100);
GabGabyz 0:ab28bf24e6e2 28 }*/
GabGabyz 0:ab28bf24e6e2 29
GabGabyz 0:ab28bf24e6e2 30 /*
GabGabyz 0:ab28bf24e6e2 31 for (i = 65535; i>0; i--) {
GabGabyz 0:ab28bf24e6e2 32 my_output.write_u16(i);
GabGabyz 0:ab28bf24e6e2 33 //wait_us(10);
GabGabyz 0:ab28bf24e6e2 34 }*/
GabGabyz 0:ab28bf24e6e2 35
GabGabyz 0:ab28bf24e6e2 36
GabGabyz 0:ab28bf24e6e2 37
GabGabyz 0:ab28bf24e6e2 38 int main() {
GabGabyz 0:ab28bf24e6e2 39 while(1) {
GabGabyz 0:ab28bf24e6e2 40 // triangle output
GabGabyz 0:ab28bf24e6e2 41 for (i = 0; i < 65536; i++) {
GabGabyz 0:ab28bf24e6e2 42 my_output.write_u16(i);
GabGabyz 0:ab28bf24e6e2 43 // wait_us(10);
GabGabyz 0:ab28bf24e6e2 44 }
GabGabyz 0:ab28bf24e6e2 45
GabGabyz 0:ab28bf24e6e2 46 for (i = 65535; i>0; i--) {
GabGabyz 0:ab28bf24e6e2 47 my_output.write_u16(i);
GabGabyz 0:ab28bf24e6e2 48 //wait_us(10);
GabGabyz 0:ab28bf24e6e2 49 }
GabGabyz 0:ab28bf24e6e2 50 }
GabGabyz 0:ab28bf24e6e2 51 }
GabGabyz 0:ab28bf24e6e2 52
GabGabyz 0:ab28bf24e6e2 53
GabGabyz 0:ab28bf24e6e2 54
GabGabyz 0:ab28bf24e6e2 55
GabGabyz 0:ab28bf24e6e2 56
GabGabyz 0:ab28bf24e6e2 57 /*
GabGabyz 0:ab28bf24e6e2 58 //void calculate_sinewave(void);
GabGabyz 0:ab28bf24e6e2 59 int main() {
GabGabyz 0:ab28bf24e6e2 60 printf("Sinewave example\n");
GabGabyz 0:ab28bf24e6e2 61 calculate_sinewave();
GabGabyz 0:ab28bf24e6e2 62 while(1) {
GabGabyz 0:ab28bf24e6e2 63 // sinewave output
GabGabyz 0:ab28bf24e6e2 64 for (int i = 0; i < BUFFER_SIZE; i++) {
GabGabyz 0:ab28bf24e6e2 65 my_output.write_u16(buffer[i]);
GabGabyz 0:ab28bf24e6e2 66 wait_us(10);
GabGabyz 0:ab28bf24e6e2 67 }
GabGabyz 0:ab28bf24e6e2 68 }
GabGabyz 0:ab28bf24e6e2 69 }
GabGabyz 0:ab28bf24e6e2 70
GabGabyz 0:ab28bf24e6e2 71 // Create the sinewave buffer
GabGabyz 0:ab28bf24e6e2 72 void calculate_sinewave(void){
GabGabyz 0:ab28bf24e6e2 73 for (int i = 0; i < BUFFER_SIZE; i++) {
GabGabyz 0:ab28bf24e6e2 74 double rads = (PI * i)/180.0; // Convert degree in radian
GabGabyz 0:ab28bf24e6e2 75 buffer[i] = (uint16_t)(AMPLITUDE * (RANGE * (cos(rads + PHASE))) + OFFSET);
GabGabyz 0:ab28bf24e6e2 76 }
GabGabyz 0:ab28bf24e6e2 77 }
GabGabyz 0:ab28bf24e6e2 78 */