aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2009-06-16 07:17:22 +0000
committerDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2009-06-16 07:17:22 +0000
commit6468ce7acd6095f8019630e65799cf7bf0cc07be (patch)
tree27d6d4cb5aaeecf0dcc5841c4af83d88096c054a
parent2e09feff05ce44a1ed9df610c2ea04088322c6dd (diff)
Pipe_GetErrorFlags() now returns additional error flags for overflow and underflow errors.
Change MIDI demos to use real MIDI command values, and shift for the USB wrapper, rather than shift for the MIDI bytes. This is a little confusing for the MIDI USB wrapper, but allows for the use of real standardized MIDI command values. git-svn-id: http://lufa-lib.googlecode.com/svn/trunk@605 d5102386-fcda-11dd-9fdb-3debd5008f28
-rw-r--r--Demos/Device/ClassDriver/MIDI/MIDI.c4
-rw-r--r--Demos/Device/LowLevel/MIDI/MIDI.c4
-rw-r--r--Demos/Device/LowLevel/MIDI/MIDI.h8
-rw-r--r--LUFA/Drivers/USB/Class/Common/MIDI.h4
-rw-r--r--LUFA/Drivers/USB/LowLevel/Pipe.h11
-rw-r--r--LUFA/ManPages/ChangeLog.txt1
-rw-r--r--Projects/MissleLauncher/MissileLauncher.c4
7 files changed, 23 insertions, 13 deletions
diff --git a/Demos/Device/ClassDriver/MIDI/MIDI.c b/Demos/Device/ClassDriver/MIDI/MIDI.c
index 234adca2..511f280d 100644
--- a/Demos/Device/ClassDriver/MIDI/MIDI.c
+++ b/Demos/Device/ClassDriver/MIDI/MIDI.c
@@ -139,9 +139,9 @@ void CheckJoystickMovement(void)
USB_MIDI_EventPacket_t MIDIEvent = (USB_MIDI_EventPacket_t)
{
.CableNumber = 0,
- .Command = MIDICommand,
+ .Command = (MIDICommand >> 4),
- .Data1 = (MIDICommand << 4) | Channel,
+ .Data1 = MIDICommand | Channel,
.Data2 = MIDIPitch,
.Data3 = MIDI_STANDARD_VELOCITY,
};
diff --git a/Demos/Device/LowLevel/MIDI/MIDI.c b/Demos/Device/LowLevel/MIDI/MIDI.c
index c74d8d53..84d37785 100644
--- a/Demos/Device/LowLevel/MIDI/MIDI.c
+++ b/Demos/Device/LowLevel/MIDI/MIDI.c
@@ -168,9 +168,9 @@ void MIDI_Task(void)
USB_MIDI_EventPacket_t MIDIEvent = (USB_MIDI_EventPacket_t)
{
.CableNumber = 0,
- .Command = MIDICommand,
+ .Command = (MIDICommand >> 4),
- .Data1 = (MIDICommand << 4) | Channel,
+ .Data1 = MIDICommand | Channel,
.Data2 = MIDIPitch,
.Data3 = MIDI_STANDARD_VELOCITY,
};
diff --git a/Demos/Device/LowLevel/MIDI/MIDI.h b/Demos/Device/LowLevel/MIDI/MIDI.h
index 1558501a..735ac844 100644
--- a/Demos/Device/LowLevel/MIDI/MIDI.h
+++ b/Demos/Device/LowLevel/MIDI/MIDI.h
@@ -52,20 +52,20 @@
/* Macros: */
/** MIDI command for a note on (activation) event */
- #define MIDI_COMMAND_NOTE_ON 0x09
+ #define MIDI_COMMAND_NOTE_ON 0x90
/** MIDI command for a note off (deactivation) event */
- #define MIDI_COMMAND_NOTE_OFF 0x08
+ #define MIDI_COMMAND_NOTE_OFF 0x80
/** Standard key press velocity value used for all note events, as no pressure sensor is mounted */
- #define MIDI_STANDARD_VELOCITY 64
+ #define MIDI_STANDARD_VELOCITY 64
/** Convenience macro. MIDI channels are numbered from 1-10 (natural numbers) however the logical channel
* addresses are zero-indexed. This converts a natural MIDI channel number into the logical channel address.
*
* \param channel MIDI channel number to address
*/
- #define MIDI_CHANNEL(channel) (channel - 1)
+ #define MIDI_CHANNEL(channel) (channel - 1)
/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
#define LEDMASK_USB_NOTREADY LEDS_LED1
diff --git a/LUFA/Drivers/USB/Class/Common/MIDI.h b/LUFA/Drivers/USB/Class/Common/MIDI.h
index 05bd8463..f768ba23 100644
--- a/LUFA/Drivers/USB/Class/Common/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Common/MIDI.h
@@ -60,10 +60,10 @@
#define MIDI_JACKTYPE_EXTERNAL 0x02
/** MIDI command for a note on (activation) event */
- #define MIDI_COMMAND_NOTE_ON 0x09
+ #define MIDI_COMMAND_NOTE_ON 0x90
/** MIDI command for a note off (deactivation) event */
- #define MIDI_COMMAND_NOTE_OFF 0x08
+ #define MIDI_COMMAND_NOTE_OFF 0x80
/** Standard key press velocity value used for all note events */
#define MIDI_STANDARD_VELOCITY 64
diff --git a/LUFA/Drivers/USB/LowLevel/Pipe.h b/LUFA/Drivers/USB/LowLevel/Pipe.h
index f3da9d1c..62cbe65a 100644
--- a/LUFA/Drivers/USB/LowLevel/Pipe.h
+++ b/LUFA/Drivers/USB/LowLevel/Pipe.h
@@ -77,6 +77,12 @@
/* Public Interface - May be used in end-application: */
/* Macros: */
+ /** Mask for \ref Pipe_GetErrorFlags(), indicating that an overflow error occurred in the pipe on the received data. */
+ #define PIPE_ERRORFLAG_OVERFLOW (1 << 6)
+
+ /** Mask for \ref Pipe_GetErrorFlags(), indicating that an underflow error occurred in the pipe on the received data. */
+ #define PIPE_ERRORFLAG_UNDERFLOW (1 << 5)
+
/** Mask for \ref Pipe_GetErrorFlags(), indicating that a CRC error occurred in the pipe on the received data. */
#define PIPE_ERRORFLAG_CRC16 (1 << 4)
@@ -426,7 +432,10 @@
#define Pipe_ClearErrorFlags() MACROS{ UPERRX = 0; }MACROE
- #define Pipe_GetErrorFlags() UPERRX
+ #define Pipe_GetErrorFlags() ((UPERRX & (PIPE_ERRORFLAG_CRC16 | PIPE_ERRORFLAG_TIMEOUT | \
+ PIPE_ERRORFLAG_PID | PIPE_ERRORFLAG_DATAPID | \
+ PIPE_ERRORFLAG_DATATGL)) | \
+ (UPSTAX & PIPE_ERRORFLAG_OVERFLOW | PIPE_ERRORFLAG_UNDERFLOW))
#define Pipe_IsReadWriteAllowed() ((UPINTX & (1 << RWAL)) ? true : false)
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 6343d3f7..b3d533d7 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -21,6 +21,7 @@
* - Added new USB_Host_SetDeviceConfiguration() convenience function for easy configuration selection of devices while in USB
* host mode
* - Added USB Missle Launcher project, submitted by Dave Fletcher
+ * - Pipe_GetErrorFlags() now returns additional error flags for overflow and underflow errors
*
*
* \section Sec_ChangeLog090605 Version 090605
diff --git a/Projects/MissleLauncher/MissileLauncher.c b/Projects/MissleLauncher/MissileLauncher.c
index cb12e2aa..e70187be 100644
--- a/Projects/MissleLauncher/MissileLauncher.c
+++ b/Projects/MissleLauncher/MissileLauncher.c
@@ -64,8 +64,8 @@ uint8_t CMD_LEFTDOWN[8] = { 0, 1, 0, 0, 1, 0, 8, 8 };
uint8_t CMD_RIGHTDOWN[8] = { 0, 0, 1, 0, 1, 0, 8, 8 };
uint8_t CMD_FIRE[8] = { 0, 0, 0, 0, 0, 1, 8, 8 };
-uint8_t *CmdState;
-uint8_t CmdBuffer[LAUNCHER_CMD_BUFFER_SIZE];
+uint8_t* CmdState;
+uint8_t CmdBuffer[LAUNCHER_CMD_BUFFER_SIZE];
/** Main program entry point. This routine configures the hardware required by the application, then
* starts the scheduler to run the application tasks.