Test Tone - 440Hz sinus

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 AnalogOut sine (p18);
00004 
00005 
00006 const float j = 180;
00007 int i = 0;
00008 int lp =0;
00009 float output=0;
00010 
00011 float SIN_LUT[(int)j]=
00012 
00013        {0.0000000000000, 0.0174524064373, 0.0348994967025, 0.0523359562429, 
00014         0.0697564737441, 0.0871557427477, 0.1045284632677, 0.1218693434051,  
00015         0.1391731009601, 0.1564344650402, 0.1736481776669, 0.1908089953765,  
00016         0.2079116908178, 0.2249510543439, 0.2419218955997, 0.2588190451025,  
00017         0.2756373558170, 0.2923717047227, 0.3090169943749, 0.3255681544572,  
00018         0.3420201433257, 0.3583679495453, 0.3746065934159, 0.3907311284893,  
00019         0.4067366430758, 0.4226182617407, 0.4383711467891, 0.4539904997395,  
00020         0.4694715627859, 0.4848096202463, 0.5000000000000, 0.5150380749101,  
00021         0.5299192642332, 0.5446390350150, 0.5591929034707, 0.5735764363510,  
00022         0.5877852522925, 0.6018150231520, 0.6156614753257, 0.6293203910498,  
00023         0.6427876096865, 0.6560590289905, 0.6691306063589, 0.6819983600625,  
00024         0.6946583704590, 0.7071067811865, 0.7193398003387, 0.7313537016192, 
00025         0.7431448254774, 0.7547095802228, 0.7660444431190, 0.7771459614570,  
00026         0.7880107536067, 0.7986355100473, 0.8090169943749, 0.8191520442890,  
00027         0.8290375725550, 0.8386705679454, 0.8480480961564, 0.8571673007021, 
00028         0.8660254037844, 0.8746197071394, 0.8829475928589, 0.8910065241884,  
00029         0.8987940462992, 0.9063077870367, 0.9135454576426, 0.9205048534524,  
00030         0.9271838545668, 0.9335804264972, 0.9396926207859, 0.9455185755993,  
00031         0.9510565162952, 0.9563047559630, 0.9612616959383, 0.9659258262891,  
00032         0.9702957262760, 0.9743700647852, 0.9781476007338, 0.9816271834477,  
00033         0.9848077530122, 0.9876883405951, 0.9902680687416, 0.9925461516413,  
00034         0.9945218953683, 0.9961946980917, 0.9975640502598, 0.9986295347546,  
00035         0.9993908270191, 0.9998476951564, 1.0000000000000, 0.9998476951564,
00036         0.9993908270191, 0.9986295347546, 0.9975640502598, 0.9961946980917,  
00037         0.9945218953683, 0.9925461516413, 0.9902680687416, 0.9876883405951,  
00038         0.9848077530122, 0.9816271834477, 0.9781476007338, 0.9743700647852, 
00039         0.9702957262760, 0.9659258262891, 0.9612616959383, 0.9563047559630,  
00040         0.9510565162952, 0.9455185755993, 0.9396926207859, 0.9335804264972,  
00041         0.9271838545668, 0.9205048534524, 0.9135454576426, 0.9063077870367,  
00042         0.8987940462992, 0.8910065241884, 0.8829475928589, 0.8746197071394,  
00043         0.8660254037844, 0.8571673007021, 0.8480480961564, 0.8386705679454,  
00044         0.8290375725550, 0.8191520442890, 0.8090169943749, 0.7986355100473, 
00045         0.7880107536067, 0.7771459614570, 0.7660444431190, 0.7547095802228,  
00046         0.7431448254774, 0.7313537016192, 0.7193398003387, 0.7071067811865,  
00047         0.6946583704590, 0.6819983600625, 0.6691306063589, 0.6560590289905,  
00048         0.6427876096865, 0.6293203910498, 0.6156614753257, 0.6018150231520,  
00049         0.5877852522925, 0.5735764363510, 0.5591929034707, 0.5446390350150,  
00050         0.5299192642332, 0.5150380749101, 0.5000000000000, 0.4848096202463,  
00051         0.4694715627859, 0.4539904997395, 0.4383711467891, 0.4226182617407, 
00052         0.4067366430758, 0.3907311284893, 0.3746065934159, 0.3583679495453,  
00053         0.3420201433257, 0.3255681544572, 0.3090169943749, 0.2923717047227,  
00054         0.2756373558170, 0.2588190451025, 0.2419218955997, 0.2249510543439,  
00055         0.2079116908178, 0.1908089953765, 0.1736481776669, 0.1564344650402,  
00056         0.1391731009601, 0.1218693434051, 0.1045284632677, 0.0871557427477,  
00057         0.0697564737441, 0.0523359562429, 0.0348994967025, 0.0174524064373};
00058 
00059 
00060 int main() {
00061 
00062 
00063     while (1) {    
00064     
00065         if (i>(j-1)) {
00066              i=0;
00067                 } 
00068 
00069         if (lp == 70) {
00070 
00071         lp=0;
00072         output = SIN_LUT[i];
00073         sine = output;
00074         i++;
00075  
00076                  }
00077                  
00078                  lp++;
00079 
00080     }
00081 
00082 }
00083