Examen pratique info S5

Dependencies:   mbed

Committer:
Alegrowin
Date:
Fri Jan 18 19:31:27 2013 +0000
Revision:
0:23d910ab014b
Functionnel V1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Alegrowin 0:23d910ab014b 1 #include "mbed.h"
Alegrowin 0:23d910ab014b 2
Alegrowin 0:23d910ab014b 3 AnalogOut an_Out(p18);
Alegrowin 0:23d910ab014b 4 Ticker timer;
Alegrowin 0:23d910ab014b 5
Alegrowin 0:23d910ab014b 6 void Sinus(void);
Alegrowin 0:23d910ab014b 7 void calculateSinus();
Alegrowin 0:23d910ab014b 8
Alegrowin 0:23d910ab014b 9 int temp = 2500;
Alegrowin 0:23d910ab014b 10 float sins[5000];
Alegrowin 0:23d910ab014b 11
Alegrowin 0:23d910ab014b 12 int main()
Alegrowin 0:23d910ab014b 13 {
Alegrowin 0:23d910ab014b 14 calculateSinus();
Alegrowin 0:23d910ab014b 15
Alegrowin 0:23d910ab014b 16 timer.attach(&Sinus, 0.000002);
Alegrowin 0:23d910ab014b 17
Alegrowin 0:23d910ab014b 18 while(1) {
Alegrowin 0:23d910ab014b 19 wait(1);
Alegrowin 0:23d910ab014b 20 }
Alegrowin 0:23d910ab014b 21
Alegrowin 0:23d910ab014b 22 }
Alegrowin 0:23d910ab014b 23
Alegrowin 0:23d910ab014b 24 void calculateSinus()
Alegrowin 0:23d910ab014b 25 {
Alegrowin 0:23d910ab014b 26 int a;
Alegrowin 0:23d910ab014b 27 for(a = 0;a<5000;a++)
Alegrowin 0:23d910ab014b 28 {
Alegrowin 0:23d910ab014b 29 sins[a] = cos(a/5000.0*2.0*3.1416)/2+.5;
Alegrowin 0:23d910ab014b 30 }
Alegrowin 0:23d910ab014b 31 }
Alegrowin 0:23d910ab014b 32
Alegrowin 0:23d910ab014b 33
Alegrowin 0:23d910ab014b 34 void Sinus (void)
Alegrowin 0:23d910ab014b 35 {
Alegrowin 0:23d910ab014b 36 an_Out.write(sins[temp++]);
Alegrowin 0:23d910ab014b 37
Alegrowin 0:23d910ab014b 38 if(temp == 5000)
Alegrowin 0:23d910ab014b 39 temp =0;
Alegrowin 0:23d910ab014b 40 }