projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Minor updates to the Magstripe and MissileLauncher projects to fix bugs and improve...
[pub/USBasp.git]
/
Projects
/
Magstripe
/
Magstripe.c
diff --git
a/Projects/Magstripe/Magstripe.c
b/Projects/Magstripe/Magstripe.c
index
95c81f3
..
1151735
100644
(file)
--- a/
Projects/Magstripe/Magstripe.c
+++ b/
Projects/Magstripe/Magstripe.c
@@
-130,6
+130,7
@@
void ReadMagstripeData(void)
bool ClockPinLevel = ((Magstripe_LCL & TrackInfo[Track].ClockMask) != 0);
\r
bool ClockLevelChanged = (((Magstripe_LCL ^ Magstripe_Prev) & TrackInfo[Track].ClockMask) != 0);
\r
\r
bool ClockPinLevel = ((Magstripe_LCL & TrackInfo[Track].ClockMask) != 0);
\r
bool ClockLevelChanged = (((Magstripe_LCL ^ Magstripe_Prev) & TrackInfo[Track].ClockMask) != 0);
\r
\r
+ /* Sample on rising clock edges */
\r
if (ClockPinLevel && ClockLevelChanged)
\r
BitBuffer_StoreNextBit(&TrackDataBuffers[Track], DataPinLevel);
\r
}
\r
if (ClockPinLevel && ClockLevelChanged)
\r
BitBuffer_StoreNextBit(&TrackDataBuffers[Track], DataPinLevel);
\r
}
\r
@@
-171,15
+172,15
@@
uint16_t CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const H
static bool IsKeyReleaseReport;
\r
static bool IsNewlineReport;
\r
\r
static bool IsKeyReleaseReport;
\r
static bool IsNewlineReport;
\r
\r
- BitBuffer_t* Buffer = NULL;
\r
USB_KeyboardReport_Data_t* KeyboardReport = (USB_KeyboardReport_Data_t*)ReportData;
\r
USB_KeyboardReport_Data_t* KeyboardReport = (USB_KeyboardReport_Data_t*)ReportData;
\r
+ BitBuffer_t* Buffer = NULL;
\r
\r
\r
- /* Key reports must be interleaved with
0 Key Code reports to release the key
s, or repeated keys will be ignored */
\r
+ /* Key reports must be interleaved with
key release report
s, or repeated keys will be ignored */
\r
IsKeyReleaseReport = !IsKeyReleaseReport;
\r
\r
if (IsKeyReleaseReport)
\r
{
\r
IsKeyReleaseReport = !IsKeyReleaseReport;
\r
\r
if (IsKeyReleaseReport)
\r
{
\r
- KeyboardReport->KeyCode =
0
;
\r
+ KeyboardReport->KeyCode =
KEY_NONE
;
\r
}
\r
else if (IsNewlineReport)
\r
{
\r
}
\r
else if (IsNewlineReport)
\r
{
\r
@@
-188,6
+189,7
@@
uint16_t CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const H
}
\r
else
\r
{
\r
}
\r
else
\r
{
\r
+ /* Read out tracks in ascending order - when each track buffer is empty, progress to next buffer */
\r
if (TrackDataBuffers[0].Elements)
\r
Buffer = &TrackDataBuffers[0];
\r
else if (TrackDataBuffers[1].Elements)
\r
if (TrackDataBuffers[0].Elements)
\r
Buffer = &TrackDataBuffers[0];
\r
else if (TrackDataBuffers[1].Elements)
\r
@@
-199,7
+201,7
@@
uint16_t CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const H
\r
KeyboardReport->KeyCode = BitBuffer_GetNextBit(Buffer) ? KEY_1 : KEY_0;
\r
\r
\r
KeyboardReport->KeyCode = BitBuffer_GetNextBit(Buffer) ? KEY_1 : KEY_0;
\r
\r
- /* If buffer now empty, next report must be a newline to seperate track data */
\r
+ /* If
current track
buffer now empty, next report must be a newline to seperate track data */
\r
if (!(Buffer->Elements))
\r
IsNewlineReport = true;
\r
}
\r
if (!(Buffer->Elements))
\r
IsNewlineReport = true;
\r
}
\r