Luke Cartwright / Mbed 2 deprecated ELEC2645_Project_el18loc_nearlythere

Dependencies:   mbed

Committer:
lukeocarwright
Date:
Tue May 26 10:17:47 2020 +0000
Revision:
30:08cc4ec58d07
Parent:
24:c3bb1b0b2207
Child:
31:cfdb014ff086
Sorted Settings Menu Final Touches. More Code Tidying.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lukeocarwright 14:9cfe0041cc4e 1 #include "Sound.h"
lukeocarwright 14:9cfe0041cc4e 2
lukeocarwright 14:9cfe0041cc4e 3 //Global Variables
lukeocarwright 14:9cfe0041cc4e 4 volatile extern uint16_t sin_wavtable[1024];
lukeocarwright 14:9cfe0041cc4e 5 volatile extern uint16_t tri_wavtable[1024];
lukeocarwright 14:9cfe0041cc4e 6 volatile extern uint16_t pulse_wavtable[1024];
lukeocarwright 14:9cfe0041cc4e 7
lukeocarwright 14:9cfe0041cc4e 8 //Constructor/Destructor
lukeocarwright 14:9cfe0041cc4e 9 Sound::Sound()
lukeocarwright 14:9cfe0041cc4e 10 {
lukeocarwright 14:9cfe0041cc4e 11 }
lukeocarwright 14:9cfe0041cc4e 12 Sound::~Sound()
lukeocarwright 14:9cfe0041cc4e 13 {
lukeocarwright 14:9cfe0041cc4e 14 }
lukeocarwright 14:9cfe0041cc4e 15
lukeocarwright 14:9cfe0041cc4e 16 //PUBLIC:-----------------------------------------------------------------------
lukeocarwright 14:9cfe0041cc4e 17
lukeocarwright 14:9cfe0041cc4e 18 uint16_t Sound::sound_main(bool initial, int waveform, int frequency)
lukeocarwright 14:9cfe0041cc4e 19 {
lukeocarwright 14:9cfe0041cc4e 20 if (initial==true) {
lukeocarwright 14:9cfe0041cc4e 21 i=0;
lukeocarwright 14:9cfe0041cc4e 22 return(i);
lukeocarwright 14:9cfe0041cc4e 23 }
lukeocarwright 14:9cfe0041cc4e 24 i=wavetable_itt(i,frequency);
lukeocarwright 15:1c67f064278e 25
lukeocarwright 14:9cfe0041cc4e 26 if (waveform==1) {
lukeocarwright 14:9cfe0041cc4e 27 #ifdef SLOW_TIME
lukeocarwright 18:204cd747b54a 28 printf("SIN_wavtable[%u]\n",i);
lukeocarwright 14:9cfe0041cc4e 29 #endif
lukeocarwright 14:9cfe0041cc4e 30 return (sin_wavtable[i]);
lukeocarwright 14:9cfe0041cc4e 31 }
lukeocarwright 15:1c67f064278e 32 if (waveform==2) {
lukeocarwright 15:1c67f064278e 33 #ifdef SLOW_TIME
lukeocarwright 18:204cd747b54a 34 printf("TRI_wavtable[%u]\n",i);
lukeocarwright 15:1c67f064278e 35 #endif
lukeocarwright 15:1c67f064278e 36 return (tri_wavtable[i]);
lukeocarwright 15:1c67f064278e 37 }
lukeocarwright 15:1c67f064278e 38 if (waveform==3) {
lukeocarwright 15:1c67f064278e 39 #ifdef SLOW_TIME
lukeocarwright 18:204cd747b54a 40 printf("SQR_wavtable[%u]\n",i);
lukeocarwright 15:1c67f064278e 41 #endif
lukeocarwright 15:1c67f064278e 42 return (pulse_wavtable[i]);
lukeocarwright 15:1c67f064278e 43 }
lukeocarwright 14:9cfe0041cc4e 44 return(0);
lukeocarwright 14:9cfe0041cc4e 45 }
lukeocarwright 14:9cfe0041cc4e 46
lukeocarwright 14:9cfe0041cc4e 47 //PRIVATE:----------------------------------------------------------------------
lukeocarwright 14:9cfe0041cc4e 48 uint16_t Sound::wavetable_itt(uint16_t i, int frequency)
lukeocarwright 14:9cfe0041cc4e 49 {
lukeocarwright 24:c3bb1b0b2207 50 i_d = i + ((1024*frequency)/ 10000); //i+((samples*f)*Ts)
lukeocarwright 30:08cc4ec58d07 51 i=ceil(i_d); //rounds to int
lukeocarwright 30:08cc4ec58d07 52
lukeocarwright 30:08cc4ec58d07 53 if (i>=1024) { //Sorts Overlap
lukeocarwright 14:9cfe0041cc4e 54 i=i-1024;
lukeocarwright 14:9cfe0041cc4e 55 }
lukeocarwright 14:9cfe0041cc4e 56 return(i);
lukeocarwright 14:9cfe0041cc4e 57 }