X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/1d433d4506113c95285f633e3553ff62d4cfd05d..77a9df36a77d2523dd2bc24fa17f9f04c6c175c5:/Projects/MIDIToneGenerator/MIDIToneGenerator.c?ds=sidebyside diff --git a/Projects/MIDIToneGenerator/MIDIToneGenerator.c b/Projects/MIDIToneGenerator/MIDIToneGenerator.c index f9234865e..e1008a7d3 100644 --- a/Projects/MIDIToneGenerator/MIDIToneGenerator.c +++ b/Projects/MIDIToneGenerator/MIDIToneGenerator.c @@ -57,7 +57,7 @@ USB_ClassInfo_MIDI_Device_t Keyboard_MIDI_Interface = }; /** 8-bit 256 entry Sine Wave lookup table */ -const uint8_t SineTable[256] = +static const uint8_t SineTable[256] = { 128, 131, 134, 137, 140, 143, 146, 149, 152, 156, 159, 162, 165, 168, 171, 174, 176, 179, 182, 185, 188, 191, 193, 196, 199, 201, 204, 206, 209, 211, 213, 216, @@ -78,7 +78,8 @@ const uint8_t SineTable[256] = }; /** Array of structures describing each note being generated */ -DDSNoteData NoteData[MAX_SIMULTANEOUS_NOTES]; +static DDSNoteData NoteData[MAX_SIMULTANEOUS_NOTES]; + /** Main program entry point. This routine contains the overall program flow, including initial * setup of all components and the main program loop. @@ -165,7 +166,7 @@ ISR(TIMER0_COMPA_vect, ISR_BLOCK) if (NoteData[i].Pitch) { /* Use the top 8 bits of the table position as the sample table index */ - uint8_t TableIndex = ((uint8_t*)&NoteData[i].TablePosition)[3]; + uint8_t TableIndex = (NoteData[i].TablePosition >> 24); /* Add the new tone sample to the accumulator and increment the table position */ MixedSample += SineTable[TableIndex];