FormazioneSitael / Mbed 2 deprecated SITAEL-TesysRail_Sine_FINALE

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
pinofal
Date:
Thu Apr 09 09:15:01 2020 +0000
Parent:
4:c5559005c04b
Commit message:
TesysRail: Generazione Tono siunsoidale per vibrazione piezo con cassa acustica

Changed in this revision

TesysRail_2.cpp Show diff for this revision Revisions of this file
TesysRail_Sine.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r c5559005c04b -r 9166f543c6b8 TesysRail_2.cpp
--- a/TesysRail_2.cpp	Tue Feb 18 18:20:41 2020 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-#include "mbed.h"
-#define N 100
-
-
-// TEST DI GENERAZIONE SEGNALE AUDIO ANALOGICO
-
-// Definizione Seriale di comunicazione con PC
-Serial pc(USBTX, USBRX, 921600);
-
-//Pin di uscita del segnale Audio
-AnalogOut aAudioOut(PA_5);
-//DigitalOut dAudioOut (D13); // scopi diagnostici
-
-// periferiche presenti On Board 
-DigitalOut OnBoardRedLED (LED3);
-DigitalOut OnBoardGreenLED (LED1);
-DigitalOut OnBoardBlueLED (LED2);
-DigitalIn OnBoardButton (USER_BUTTON);
-Ticker mySoundGeneration;
-
- 
-
-    //Dichiarazione variabioi volatili e globali
-    volatile bool bStop;
-    volatile int i = 0;
-    double y;
-    char cRxChar;
-    volatile double afSin[N]; 
-    
-    //Funzione che inserisce nell'array 'afSin' la sinusoide generata
-    void sineGeneration()
-    {
-        for(int j = 0;j<N;j++)
-        {
-            afSin[j]=(sin((6.28/N)*j)+1)/2.0;
-        
-        }
-    
-    }
-    
-    //Funzione la quale riproduce la sinusoide precedentemente messa nell'array 'afSin'
-    void soundGeneration()
-    {  
-
-      //pc.printf("Sono qui = 3\r\n");              //Necessità diagnostiche
-        if(bStop==0)                              //Condizione necessaria per l'utilizzo di hyperterminal, nel caso si voglia fermare o far riprendere la produzione di frequenze
-        {   
-            aAudioOut.write(afSin[i]);
-            i++;
-            if(i >=N)
-            {
-                 i = 0;
-            }
-            
-        } 
-    
-    }
-
-    void cambiaFrequenza(double _fs){
-        double _Ts, _T;
-        _Ts= 1/_fs;
-        _T=_Ts/N;
-        
-        mySoundGeneration.detach();
-        mySoundGeneration.attach(&soundGeneration, _T);
-    
-    }    
-
-    
-/********************/
-/*      Main        */
-/********************/
-
-
- 
-int main()
-{
-
-    //  messaggio di benvenuto
-    pc.printf("Welcome to Tesys-Rail\r\n");
-    
-    //inizializza variabili necessarie per l'utilizzo della seriale
-    bStop=0;
-    cRxChar = 0;
-    
-    // ACCENSIONE led DI BENVENUTO
-    OnBoardRedLED=1;
-    OnBoardBlueLED=1;
-    OnBoardGreenLED=1;
-    wait(2);
-    OnBoardRedLED=0;
-    OnBoardBlueLED=0;
-    OnBoardGreenLED=0;
-     
-     //Dichiarazione variabili
-    double fs = 40.0;
-    volatile double Ts = 1.0/fs;
-    volatile double T = Ts/N;
-    //printf("T = %.6f\r\n", T); //Necessità diagnostiche
-   
-    //  Agganciamento Ticker alla funzione soundGeneration
-    sineGeneration();
-    mySoundGeneration.attach(&soundGeneration, T);
-
-     
-     
-
-        
-    //++++++++++++++++++ INIZIO Test generazione Audio con segnale Analogico +++++++++++++++++++++ */
-        
-        /********************/
-        /* Ciclo Principale */
-        /********************/
-        while(true)
-        {
-            //Inizio condizione per far fermare o riprendere l'esecuzione della funzione soundGeneration
-                
-
-                
-                if(pc.readable())
-                {
-                    //pc.printf("Sono qui = 0\r\n");  //Necessità diagnostiche
-        
-                    cRxChar = pc.getc(); 
-                    //+++++++++++++++++++++++++++++++++++++++++++++++
-                    //Opzioni di cambio frequenza da seriale
-                    switch(cRxChar)
-                    {
-                        case '1':
-                            cambiaFrequenza(40.0);
-                            pc.printf("\r\n");
-                        break;
-                        
-                        case '2':
-                            cambiaFrequenza(80.0);
-                            pc.printf("\r\n");
-                        break;
-                        
-                        case '3':
-                            cambiaFrequenza(130.0);
-                            pc.printf("\r\n");
-                        break;
-                        
-                        case '4':
-                            cambiaFrequenza(180.0);
-                            pc.printf("\r\n");
-                        break;
-                        
-                        case '5':
-                            cambiaFrequenza(240.0);
-                            pc.printf("\r\n");
-                        break;
-                        
-                        case '6':
-                            cambiaFrequenza(300.0);
-                            pc.printf("\r\n");
-                        break;
-                        
-                         case 's':
-                            bStop = 1;
-                            pc.printf("\r\n");
-                        break;
-                        
-                        case 'r':
-                            bStop = 0;
-                            pc.printf("\r\n");
-                        break;
-                        
-                        case 'c':
-                            pc.printf("\033[2J");
-                            pc.printf("\r");
-                        break;
-                         
-                        default: 
-                            pc.printf("\r\n");
-                        break;                                                                            
-                    
-                    }
-                   //+++++++++++++++++++++++++++++++++++++++++++++++
-                    
-                }
-                
-            }  
-            /********************/
-            /*      Fine        */             
-            /* Ciclo Principale */
-            /********************/
-            
-        }
-        
-        /********************/
-        /*      Fine        */
-        /*       Main       */
-        /********************/
-        
-        
-
-
-
-    
-    
-
-        
-        
-    
-    //++++++++++++++++++ FINE Test generazione Audio con segnale Analogico +++++++++++++++++++++
-
-    //++++++++++++++++++ INIZIO Test generazione Audio con segnale digitale +++++++++++++++++++++
-    /*
-    while(true)
-    {
-        dAudioOut = 1;
-        wait_us(1270); // semiperiodo del segnale da generare (Sol 392Hz)
-        dAudioOut = 0;
-        wait_us(1270); // semiperiodo del segnale da generare
-    }
-    */
-    //++++++++++++++++++ FINE Test generazione Audio con segnale digitale ++++++++++++++++++++++++
-
diff -r c5559005c04b -r 9166f543c6b8 TesysRail_Sine.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TesysRail_Sine.cpp	Thu Apr 09 09:15:01 2020 +0000
@@ -0,0 +1,219 @@
+#include "mbed.h"
+#define N 100
+
+
+// TEST DI GENERAZIONE SEGNALE AUDIO ANALOGICO
+
+// Definizione Seriale di comunicazione con PC
+Serial pc(USBTX, USBRX, 921600);
+
+//Pin di uscita del segnale Audio
+AnalogOut aAudioOut(PA_5);
+//DigitalOut dAudioOut (D13); // scopi diagnostici
+
+// periferiche presenti On Board 
+DigitalOut OnBoardRedLED (LED3);
+DigitalOut OnBoardGreenLED (LED1);
+DigitalOut OnBoardBlueLED (LED2);
+DigitalIn OnBoardButton (USER_BUTTON);
+Ticker mySoundGeneration;
+
+ 
+
+    //Dichiarazione variabioi volatili e globali
+    volatile bool bStop;
+    volatile int i = 0;
+    double y;
+    char cRxChar;
+    volatile double afSin[N]; 
+    
+    //Funzione che inserisce nell'array 'afSin' la sinusoide generata
+    void sineGeneration()
+    {
+        for(int j = 0;j<N;j++)
+        {
+            afSin[j]=(sin((6.28/N)*j)+1)/2.0;
+        
+        }
+    
+    }
+    
+    //Funzione la quale riproduce la sinusoide precedentemente messa nell'array 'afSin'
+    void soundGeneration()
+    {  
+
+      //pc.printf("Sono qui = 3\r\n");              //Necessità diagnostiche
+        if(bStop==0)                              //Condizione necessaria per l'utilizzo di hyperterminal, nel caso si voglia fermare o far riprendere la produzione di frequenze
+        {   
+            aAudioOut.write(afSin[i]);
+            i++;
+            if(i >=N)
+            {
+                 i = 0;
+            }
+            
+        } 
+    
+    }
+
+    void cambiaFrequenza(double _fs){
+        double _Ts, _T;
+        _Ts= 1/_fs;
+        _T=_Ts/N;
+        
+        mySoundGeneration.detach();
+        mySoundGeneration.attach(&soundGeneration, _T);
+    
+    }    
+
+    
+/********************/
+/*      Main        */
+/********************/
+
+
+ 
+int main()
+{
+
+    //  messaggio di benvenuto
+    pc.printf("Welcome to Tesys-Rail\r\n");
+    
+    //inizializza variabili necessarie per l'utilizzo della seriale
+    bStop=0;
+    cRxChar = 0;
+    
+    // ACCENSIONE led DI BENVENUTO
+    OnBoardRedLED=1;
+    OnBoardBlueLED=1;
+    OnBoardGreenLED=1;
+    wait(2);
+    OnBoardRedLED=0;
+    OnBoardBlueLED=0;
+    OnBoardGreenLED=0;
+     
+     //Dichiarazione variabili
+    double fs = 40.0;
+    volatile double Ts = 1.0/fs;
+    volatile double T = Ts/N;
+    //printf("T = %.6f\r\n", T); //Necessità diagnostiche
+   
+    //  Agganciamento Ticker alla funzione soundGeneration
+    sineGeneration();
+    mySoundGeneration.attach(&soundGeneration, T);
+
+     
+     
+
+        
+    //++++++++++++++++++ INIZIO Test generazione Audio con segnale Analogico +++++++++++++++++++++ */
+        
+        /********************/
+        /* Ciclo Principale */
+        /********************/
+        while(true)
+        {
+            //Inizio condizione per far fermare o riprendere l'esecuzione della funzione soundGeneration
+                
+
+                
+                if(pc.readable())
+                {
+                    //pc.printf("Sono qui = 0\r\n");  //Necessità diagnostiche
+        
+                    cRxChar = pc.getc(); 
+                    //+++++++++++++++++++++++++++++++++++++++++++++++
+                    //Opzioni di cambio frequenza da seriale
+                    switch(cRxChar)
+                    {
+                        case '1':
+                            cambiaFrequenza(40.0);
+                            pc.printf("\r\n");
+                        break;
+                        
+                        case '2':
+                            cambiaFrequenza(80.0);
+                            pc.printf("\r\n");
+                        break;
+                        
+                        case '3':
+                            cambiaFrequenza(130.0);
+                            pc.printf("\r\n");
+                        break;
+                        
+                        case '4':
+                            cambiaFrequenza(180.0);
+                            pc.printf("\r\n");
+                        break;
+                        
+                        case '5':
+                            cambiaFrequenza(240.0);
+                            pc.printf("\r\n");
+                        break;
+                        
+                        case '6':
+                            cambiaFrequenza(300.0);
+                            pc.printf("\r\n");
+                        break;
+                        
+                         case 's':
+                            bStop = 1;
+                            pc.printf("\r\n");
+                        break;
+                        
+                        case 'r':
+                            bStop = 0;
+                            pc.printf("\r\n");
+                        break;
+                        
+                        case 'c':
+                            pc.printf("\033[2J");
+                            pc.printf("\r");
+                        break;
+                         
+                        default: 
+                            pc.printf("\r\n");
+                        break;                                                                            
+                    
+                    }
+                   //+++++++++++++++++++++++++++++++++++++++++++++++
+                    
+                }
+                
+            }  
+            /********************/
+            /*      Fine        */             
+            /* Ciclo Principale */
+            /********************/
+            
+        }
+        
+        /********************/
+        /*      Fine        */
+        /*       Main       */
+        /********************/
+        
+        
+
+
+
+    
+    
+
+        
+        
+    
+    //++++++++++++++++++ FINE Test generazione Audio con segnale Analogico +++++++++++++++++++++
+
+    //++++++++++++++++++ INIZIO Test generazione Audio con segnale digitale +++++++++++++++++++++
+    /*
+    while(true)
+    {
+        dAudioOut = 1;
+        wait_us(1270); // semiperiodo del segnale da generare (Sol 392Hz)
+        dAudioOut = 0;
+        wait_us(1270); // semiperiodo del segnale da generare
+    }
+    */
+    //++++++++++++++++++ FINE Test generazione Audio con segnale digitale ++++++++++++++++++++++++
+