From 81998ce297fd9959f505e96a69337f3548db0d71 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Sun, 22 Aug 2010 01:42:09 +0000
Subject: [PATCH] Added compile time error to the AVRISP-MKII project when
 built for the U4 chips, as the default VTARGET detection ADC channel does not
 exist on these chips (thanks to Marco).

---
 LUFA/Drivers/USB/LowLevel/Endpoint.c  | 2 ++
 LUFA/ManPages/ChangeLog.txt           | 2 ++
 Projects/AVRISP-MKII/Lib/V2Protocol.h | 4 ++++
 3 files changed, 8 insertions(+)

diff --git a/LUFA/Drivers/USB/LowLevel/Endpoint.c b/LUFA/Drivers/USB/LowLevel/Endpoint.c
index 57c613a1f..f1ed2f9a2 100644
--- a/LUFA/Drivers/USB/LowLevel/Endpoint.c
+++ b/LUFA/Drivers/USB/LowLevel/Endpoint.c
@@ -87,6 +87,8 @@ bool Endpoint_ConfigureEndpoint_Prv(const uint8_t Number,
 
 void Endpoint_ClearEndpoints(void)
 {
+	UEINT = 0;
+
 	for (uint8_t EPNum = 0; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++)
 	{
 		Endpoint_SelectEndpoint(EPNum);	
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index d5fd6b9ac..f37117a98 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -18,6 +18,8 @@
   *  - Changed over all device demos to use a clearer algorithm for the configuring of the application's endpoints
   *  - Added missing DataflashManager_CheckDataflashOperation() function to the MassStorageKeyboard demo, removed redundant
   *    SCSI_Codes.h file as these values are part of the MassStorage Class Driver
+  *  - Added compile time error to the AVRISP-MKII project when built for the U4 chips, as the default VTARGET detection ADC channel
+  *    does not exist on these chips (thanks to Marco)
   *
   *  <b>Fixed:</b>
   *  - Fixed USB_GetHIDReportItemInfo() function modifying the given report item's data when the report item does not exist
diff --git a/Projects/AVRISP-MKII/Lib/V2Protocol.h b/Projects/AVRISP-MKII/Lib/V2Protocol.h
index af0dd416f..8cbd45531 100644
--- a/Projects/AVRISP-MKII/Lib/V2Protocol.h
+++ b/Projects/AVRISP-MKII/Lib/V2Protocol.h
@@ -53,6 +53,10 @@
 				#define ENABLE_XPROG_PROTOCOL
 			#endif
 		#endif
+		
+		#if defined(USB_SERIES_4_AVR) && ((VTARGET_ADC_CHANNEL == 2) || (VTARGET_ADC_CHANNEL == 3))
+			#error The U4 AVR chips do not contain ADC channels 2 or 3. Please change VTARGET_ADC_CHANNEL or define NO_VTARGET_DETECT in the makefile.
+		#endif
 
 	/* Macros: */
 		#if !defined(__DOXYGEN__)
-- 
GitLab