gerador senoidal com look-up table 8 bit

Dependencies:   mbed SeeedShieldBot BluetoothSerial

Files at this revision

API Documentation at this revision

Comitter:
afm76
Date:
Mon Jun 07 16:27:58 2021 +0000
Commit message:
Gerador senoidal com Look-up table

Changed in this revision

BluetoothSerial.lib Show annotated file Show diff for this revision Revisions of this file
SeeedShieldBot.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 66bb2be784c0 BluetoothSerial.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BluetoothSerial.lib	Mon Jun 07 16:27:58 2021 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/yihui/code/BluetoothSerial/#f56002898ee8
diff -r 000000000000 -r 66bb2be784c0 SeeedShieldBot.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SeeedShieldBot.lib	Mon Jun 07 16:27:58 2021 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/teams/components/code/SeeedShieldBot/#9fd1722259a1
diff -r 000000000000 -r 66bb2be784c0 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Jun 07 16:27:58 2021 +0000
@@ -0,0 +1,152 @@
+//--------------------------------------------------------------------------
+// 2021-06
+// Esse programa gera uma senoide com um conversor R2R e uma tabela de senos
+// a tabela foi construida no Excel para 90 passos de 1 grau, assim o valor 
+// dos senos de 0 a 90 graus sera rebatido para 90 a 180, bem como 180 a 270
+// e 270 a 360 graus
+// -------------------------------------------------------------------------
+
+#include "mbed.h"
+
+float sinus[]{
+0,
+0.017452406,
+0.034899497,
+0.052335956,
+0.069756474,
+0.087155743,
+0.104528463,
+0.121869343,
+0.139173101,
+0.156434465,
+0.173648178,
+0.190808995,
+0.207911691,
+0.224951054,
+0.241921896,
+0.258819045,
+0.275637356,
+0.292371705,
+0.309016994,
+0.325568154,
+0.342020143,
+0.35836795,
+0.374606593,
+0.390731128,
+0.406736643,
+0.422618262,
+0.438371147,
+0.4539905,
+0.469471563,
+0.48480962,
+0.5,
+0.515038075,
+0.529919264,
+0.544639035,
+0.559192903,
+0.573576436,
+0.587785252,
+0.601815023,
+0.615661475,
+0.629320391,
+0.64278761,
+0.656059029,
+0.669130606,
+0.68199836,
+0.69465837,
+0.707106781,
+0.7193398,
+0.731353702,
+0.743144825,
+0.75470958,
+0.766044443,
+0.777145961,
+0.788010754,
+0.79863551,
+0.809016994,
+0.819152044,
+0.829037573,
+0.838670568,
+0.848048096,
+0.857167301,
+0.866025404,
+0.874619707,
+0.882947593,
+0.891006524,
+0.898794046,
+0.906307787,
+0.913545458,
+0.920504853,
+0.927183855,
+0.933580426,
+0.939692621,
+0.945518576,
+0.951056516,
+0.956304756,
+0.961261696,
+0.965925826,
+0.970295726,
+0.974370065,
+0.978147601,
+0.981627183,
+0.984807753,
+0.987688341,
+0.990268069,
+0.992546152,
+0.994521895,
+0.996194698,
+0.99756405,
+0.998629535,
+0.999390827,
+0.999847695,
+1,
+};
+
+float VCC,t,T,tos;
+int f,freq; //, T;
+BusOut saida(D4, D5, D6, D7, D8, D9, D10, D11);
+
+int main()
+{
+    VCC = 3.3;                                        //used for determing offset voltage
+    freq = 60;                                        //freq. in Hz
+    tos = 15.5;                                        //time off-set in us (5.6ms / 350 = 15.5us)
+    t = 30;
+    T = t - tos; //T = 30; //(1/freq)/360;                                  //time slice in seconds for the sinusoid routine
+
+    while (true)
+    {
+        for (int i=0; i < 90; i++)                     //0 to 90 degree
+        {
+            f=74*((sinus[i]*VCC/2)+VCC/2)+10;          //59 and 60 are adj for 1/4 of the FFh range(8bit) according to Vref
+            saida = f;
+//            printf("%1.3f", j);
+            wait_us(T);//wait(T);
+        }
+        
+        for (int i=90; i > 0; i--)                     //90 to 180 degree
+        {
+            f=74*((sinus[i]*VCC/2)+VCC/2)+10;
+            saida = f;
+//            printf("%1.3f", j);
+            wait_us(T);//wait(T);
+        }
+            
+        for (int i=0; i < 90; i++)  //180 to 270 degree
+        {
+            f=74*((-sinus[i]*VCC/2)+VCC/2)+10;
+            saida = f;
+//            printf("%1.3f", j);
+            wait_us(T);//wait(T);
+        }
+            
+        for (int i=90; i > 0; i--)  //270 to 360 degree
+        {
+            f=74*((-sinus[i]*VCC/2)+VCC/2)+10;
+            saida = f;
+//            printf("%1.3f", j);
+            wait_us(T);//wait(T);
+        }
+        
+    }
+}
\ No newline at end of file
diff -r 000000000000 -r 66bb2be784c0 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Jun 07 16:27:58 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file