diff options
| -rw-r--r-- | Demos/Device/ClassDriver/AudioOutput/AudioOutput.c | 20 | ||||
| -rw-r--r-- | Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt | 15 | ||||
| -rw-r--r-- | Demos/Device/LowLevel/AudioOutput/AudioOutput.c | 20 | ||||
| -rw-r--r-- | Demos/Device/LowLevel/AudioOutput/AudioOutput.txt | 15 | 
4 files changed, 28 insertions, 42 deletions
diff --git a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c index 2caf6faa6..9a8804a45 100644 --- a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c +++ b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c @@ -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
  	}
  }
 diff --git a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt index ffae9ed57..96d241c57 100644 --- a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt +++ b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt @@ -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
 diff --git a/Demos/Device/LowLevel/AudioOutput/AudioOutput.c b/Demos/Device/LowLevel/AudioOutput/AudioOutput.c index 352d07482..7dde84bb3 100644 --- a/Demos/Device/LowLevel/AudioOutput/AudioOutput.c +++ b/Demos/Device/LowLevel/AudioOutput/AudioOutput.c @@ -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
  	}
  }
 diff --git a/Demos/Device/LowLevel/AudioOutput/AudioOutput.txt b/Demos/Device/LowLevel/AudioOutput/AudioOutput.txt index ffae9ed57..96d241c57 100644 --- a/Demos/Device/LowLevel/AudioOutput/AudioOutput.txt +++ b/Demos/Device/LowLevel/AudioOutput/AudioOutput.txt @@ -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
  | 
