Make both LowLevel and ClassDriver AudioOutput demos always output to board LEDs, regardless of output mode (removed AUDIO_OUT_LEDS compile time option from the demo). This allows for positive feedback to the user of audio activity regardless of output mode.

pull/1469/head
Dean Camera 15 years ago
parent c5eeedd522
commit bbf89d81fa

@ -103,10 +103,11 @@ void ProcessNextSample(void)
int8_t LeftSample_8Bit = (LeftSample_16Bit >> 8);
int8_t RightSample_8Bit = (RightSample_16Bit >> 8);
#if !defined(AUDIO_OUT_STEREO)
/* Mix the two channels together to produce a mono, 8-bit sample */
int8_t MixedSample_8Bit = (((int16_t)LeftSample_8Bit + (int16_t)RightSample_8Bit) >> 1);
#endif
/* Get absolute value of mixed sample value */
uint8_t MixedSample_8Bit_Abs = abs(MixedSample_8Bit);
#if defined(AUDIO_OUT_MONO)
/* Load the sample into the PWM timer channel */
@ -118,26 +119,23 @@ void ProcessNextSample(void)
#elif defined(AUDIO_OUT_PORTC)
/* Load the 8-bit mixed sample into PORTC */
PORTC = MixedSample_8Bit;
#else
uint8_t LEDMask = LEDS_NO_LEDS;
#endif
/* Make mixed sample value positive (absolute) */
MixedSample_8Bit = abs(MixedSample_8Bit);
uint8_t LEDMask = LEDS_NO_LEDS;
if (MixedSample_8Bit > 2)
if (MixedSample_8Bit_Abs > 2)
LEDMask |= LEDS_LED1;
if (MixedSample_8Bit > 4)
if (MixedSample_8Bit_Abs > 4)
LEDMask |= LEDS_LED2;
if (MixedSample_8Bit > 8)
if (MixedSample_8Bit_Abs > 8)
LEDMask |= LEDS_LED3;
if (MixedSample_8Bit > 16)
if (MixedSample_8Bit_Abs > 16)
LEDMask |= LEDS_LED4;
LEDs_SetAllLEDs(LEDMask);
#endif
}
}

@ -53,11 +53,11 @@
* required).
*
* On start-up the system will automatically enumerate and function
* as a USB speaker. Incoming audio will output in 8-bit PWM onto
* the timer output (timer 3 for the AT90USBXXX6/7 USB AVRs, timer 1 for
* the AT90USBXXX2 controller AVRs) compare channel A for AUDIO_OUT_MONO
* mode, on channels A and B for AUDIO_OUT_STEREO and on the board LEDs
* for AUDIO_OUT_LEDS mode. Decouple audio outputs with a capacitor and
* as a USB speaker. Outgoing audio will output in 8-bit PWM onto
* the timer 3 output compare channel A for AUDIO_OUT_MONO mode, on
* timer 3 channels A and B for AUDIO_OUT_STEREO and on PORTC as a signed
* mono sample for AUDIO_OUT_PORTC. Audio output will also be indicated on
* the board LEDs in all modes. Decouple audio outputs with a capacitor and
* attach to a speaker to hear the audio.
*
* Under Windows, if a driver request dialogue pops up, select the option
@ -84,11 +84,6 @@
* <td>When defined, this outputs the audio samples in mono to the timer output pin of the microcontroller.</td>
* </tr>
* <tr>
* <td>AUDIO_OUT_LEDS</td>
* <td>Makefile CDEFS</td>
* <td>When defined, this outputs the audio samples in stereo to the board LEDs.</td>
* </tr>
* <tr>
* <td>AUDIO_OUT_PORTC</td>
* <td>Makefile CDEFS</td>
* <td>When defined, this outputs the audio samples in mono to port C of the microcontroller, for connection to an

@ -210,10 +210,11 @@ void USB_Audio_Task(void)
int8_t LeftSample_8Bit = (LeftSample_16Bit >> 8);
int8_t RightSample_8Bit = (RightSample_16Bit >> 8);
#if !defined(AUDIO_OUT_STEREO)
/* Mix the two channels together to produce a mono, 8-bit sample */
int8_t MixedSample_8Bit = (((int16_t)LeftSample_8Bit + (int16_t)RightSample_8Bit) >> 1);
#endif
/* Get absolute value of mixed sample value */
uint8_t MixedSample_8Bit_Abs = abs(MixedSample_8Bit);
#if defined(AUDIO_OUT_MONO)
/* Load the sample into the PWM timer channel */
@ -225,25 +226,22 @@ void USB_Audio_Task(void)
#elif defined(AUDIO_OUT_PORTC)
/* Load the 8-bit mixed sample into PORTC */
PORTC = MixedSample_8Bit;
#else
uint8_t LEDMask = LEDS_NO_LEDS;
#endif
/* Make mixed sample value positive (absolute) */
MixedSample_8Bit = abs(MixedSample_8Bit);
uint8_t LEDMask = LEDS_NO_LEDS;
if (MixedSample_8Bit > 2)
if (MixedSample_8Bit_Abs > 2)
LEDMask |= LEDS_LED1;
if (MixedSample_8Bit > 4)
if (MixedSample_8Bit_Abs > 4)
LEDMask |= LEDS_LED2;
if (MixedSample_8Bit > 8)
if (MixedSample_8Bit_Abs > 8)
LEDMask |= LEDS_LED3;
if (MixedSample_8Bit > 16)
if (MixedSample_8Bit_Abs > 16)
LEDMask |= LEDS_LED4;
LEDs_SetAllLEDs(LEDMask);
#endif
}
}

@ -53,11 +53,11 @@
* required).
*
* On start-up the system will automatically enumerate and function
* as a USB speaker. Incoming audio will output in 8-bit PWM onto
* the timer output (timer 3 for the AT90USBXXX6/7 USB AVRs, timer 1 for
* the AT90USBXXX2 controller AVRs) compare channel A for AUDIO_OUT_MONO
* mode, on channels A and B for AUDIO_OUT_STEREO and on the board LEDs
* for AUDIO_OUT_LEDS mode. Decouple audio outputs with a capacitor and
* as a USB speaker. Outgoing audio will output in 8-bit PWM onto
* the timer 3 output compare channel A for AUDIO_OUT_MONO mode, on
* timer 3 channels A and B for AUDIO_OUT_STEREO and on PORTC as a signed
* mono sample for AUDIO_OUT_PORTC. Audio output will also be indicated on
* the board LEDs in all modes. Decouple audio outputs with a capacitor and
* attach to a speaker to hear the audio.
*
* Under Windows, if a driver request dialogue pops up, select the option
@ -84,11 +84,6 @@
* <td>When defined, this outputs the audio samples in mono to the timer output pin of the microcontroller.</td>
* </tr>
* <tr>
* <td>AUDIO_OUT_LEDS</td>
* <td>Makefile CDEFS</td>
* <td>When defined, this outputs the audio samples in stereo to the board LEDs.</td>
* </tr>
* <tr>
* <td>AUDIO_OUT_PORTC</td>
* <td>Makefile CDEFS</td>
* <td>When defined, this outputs the audio samples in mono to port C of the microcontroller, for connection to an

Loading…
Cancel
Save