@ -37,14 +37,8 @@
# if defined(ENABLE_ISP_PROTOCOL) || defined(__DOXYGEN__)
# if defined(ENABLE_ISP_PROTOCOL) || defined(__DOXYGEN__)
/** Converts the given AVR Studio SCK duration parameter (set by a SET PARAM command from the host) to the nearest
/** List of SPI prescaler masks for possible AVRStudio ISP programming speeds. */
* possible SPI clock prescaler mask for passing to the SPI_Init ( ) routine .
static uint8_t SPIMaskFromSCKDuration [ ] PROGMEM =
*
* \ return Nearest SPI prescaler mask for the given SCK frequency
*/
uint8_t ISPTarget_GetSPIPrescalerMask ( void )
{
static const uint8_t SPIMaskFromSCKDuration [ ] =
{
{
# if (F_CPU == 8000000)
# if (F_CPU == 8000000)
SPI_SPEED_FCPU_DIV_2 , // AVRStudio = 8MHz SPI, Actual = 4MHz SPI
SPI_SPEED_FCPU_DIV_2 , // AVRStudio = 8MHz SPI, Actual = 4MHz SPI
@ -67,12 +61,19 @@ uint8_t ISPTarget_GetSPIPrescalerMask(void)
# endif
# endif
} ;
} ;
/** Converts the given AVR Studio SCK duration parameter (set by a SET PARAM command from the host) to the nearest
* possible SPI clock prescaler mask for passing to the SPI_Init ( ) routine .
*
* \ return Nearest SPI prescaler mask for the given SCK frequency
*/
uint8_t ISPTarget_GetSPIPrescalerMask ( void )
{
uint8_t SCKDuration = V2Params_GetParameterValue ( PARAM_SCK_DURATION ) ;
uint8_t SCKDuration = V2Params_GetParameterValue ( PARAM_SCK_DURATION ) ;
if ( SCKDuration > = sizeof ( SPIMaskFromSCKDuration ) )
if ( SCKDuration > = sizeof ( SPIMaskFromSCKDuration ) )
SCKDuration = ( sizeof ( SPIMaskFromSCKDuration ) - 1 ) ;
SCKDuration = ( sizeof ( SPIMaskFromSCKDuration ) - 1 ) ;
return SPIMaskFromSCKDuration [ SCKDuration ] ;
return pgm_read_byte ( & SPIMaskFromSCKDuration [ SCKDuration ] ) ;
}
}
/** Asserts or deasserts the target's reset line, using the correct polarity as set by the host using a SET PARAM command.
/** Asserts or deasserts the target's reset line, using the correct polarity as set by the host using a SET PARAM command.