Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Erik Strand
lufa
Commits
8cd7e118
Commit
8cd7e118
authored
Dec 26, 2009
by
Dean Camera
Browse files
Fixed ISP mode in the AVRISP programmer project.
parent
d1608d4a
Changes
5
Hide whitespace changes
Inline
Side-by-side
LUFA/ManPages/ChangeLog.txt
View file @
8cd7e118
...
...
@@ -17,6 +17,7 @@
* - Slowed down bit-banged PDI programming in the AVRISP project slightly to prevent transmission errors
*
* <b>Fixed:</b>
* - Fixed AVRISP project not able to enter programming mode when ISP protocol is used
*
* \section Sec_ChangeLog091223 Version 091223
*
...
...
Projects/AVRISP/Lib/ISP/ISPProtocol.h
View file @
8cd7e118
...
...
@@ -38,6 +38,7 @@
/* Includes: */
#include <avr/io.h>
#include <util/delay.h>
#include <LUFA/Drivers/USB/USB.h>
...
...
@@ -66,26 +67,14 @@
#define PROG_MODE_COMMIT_PAGE_MASK (1 << 7)
/* Inline Functions: */
/** Blocking delay for a given number of milliseconds
, via a hardware timer
.
/** Blocking delay for a given number of milliseconds.
*
* \param[in] DelayMS Number of milliseconds to delay for
*/
static
inline
void
ISPProtocol_DelayMS
(
uint8_t
DelayMS
)
{
OCR2A
=
((
F_CPU
/
64
)
/
1000
);
TCCR2A
=
(
1
<<
WGM01
);
TCCR2B
=
((
1
<<
CS01
)
|
(
1
<<
CS00
));
while
(
DelayMS
)
{
if
(
TIFR2
&
(
1
<<
OCF2A
))
{
TIFR2
=
(
1
<<
OCF2A
);
DelayMS
--
;
}
}
TCCR2B
=
0
;
while
(
DelayMS
--
)
_delay_ms
(
1
);
}
/* Function Prototypes: */
...
...
Projects/AVRISP/Lib/ISP/ISPTarget.c
View file @
8cd7e118
...
...
@@ -122,6 +122,9 @@ uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode, const uint1
break
;
case
PROG_MODE_WORD_VALUE_MASK
:
case
PROG_MODE_PAGED_VALUE_MASK
:
TCNT0
=
0
;
TIFR0
=
(
1
<<
OCF1A
);
do
{
SPI_SendByte
(
ReadMemCommand
);
...
...
Projects/AVRISP/Lib/V2ProtocolParams.c
View file @
8cd7e118
...
...
@@ -131,7 +131,7 @@ uint8_t V2Params_GetParameterValue(const uint8_t ParamID)
{
ParameterItem_t
*
ParamInfo
=
V2Params_GetParamFromTable
(
ParamID
);
if
(
(
ParamInfo
==
NULL
)
||
!
(
ParamInfo
->
ParamPrivileges
&
PARAM_PRIV_READ
))
if
(
ParamInfo
==
NULL
)
return
0
;
return
ParamInfo
->
ParamValue
;
...
...
@@ -148,7 +148,7 @@ void V2Params_SetParameterValue(const uint8_t ParamID, const uint8_t Value)
{
ParameterItem_t
*
ParamInfo
=
V2Params_GetParamFromTable
(
ParamID
);
if
(
(
ParamInfo
==
NULL
)
||
!
(
ParamInfo
->
ParamPrivileges
&
PARAM_PRIV_WRITE
))
if
(
ParamInfo
==
NULL
)
return
;
ParamInfo
->
ParamValue
=
Value
;
...
...
@@ -167,11 +167,15 @@ void V2Params_SetParameterValue(const uint8_t ParamID, const uint8_t Value)
*/
static
ParameterItem_t
*
V2Params_GetParamFromTable
(
const
uint8_t
ParamID
)
{
ParameterItem_t
*
CurrTableItem
=
ParameterTable
;
/* Find the parameter in the parameter table if present */
for
(
uint8_t
TableIndex
=
0
;
TableIndex
<
(
sizeof
(
ParameterTable
)
/
sizeof
(
ParameterTable
[
0
]));
TableIndex
++
)
{
if
(
ParamID
==
ParameterTable
[
TableIndex
].
ParamID
)
return
&
ParameterTable
[
TableIndex
];
if
(
ParamID
==
CurrTableItem
->
ParamID
)
return
CurrTableItem
;
CurrTableItem
++
;
}
return
NULL
;
...
...
Projects/AVRISP/makefile
View file @
8cd7e118
...
...
@@ -60,7 +60,7 @@
# MCU name
MCU
=
at90usb12
87
MCU
=
at90usb1
6
2
# Target board (see library "Board Types" documentation, USER or blank for projects not requiring
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment