Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: TesysRail_2.cpp
- Revision:
- 5:9166f543c6b8
- Parent:
- 4:c5559005c04b
--- 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 ++++++++++++++++++++++++ -