X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/271be037b736d66a7b7e0c4d5d30c5a24025277f..64e5c4084f862267d96b0947f462de7058f3dc4c:/Projects/AVRISP/Lib/V2ProtocolParams.c?ds=inline diff --git a/Projects/AVRISP/Lib/V2ProtocolParams.c b/Projects/AVRISP/Lib/V2ProtocolParams.c index 9914c085e..6aaa9558e 100644 --- a/Projects/AVRISP/Lib/V2ProtocolParams.c +++ b/Projects/AVRISP/Lib/V2ProtocolParams.c @@ -85,17 +85,30 @@ static ParameterItem_t ParameterTable[] = /** Loads saved non-volatile parameter values from the EEPROM into the parameter table, as needed. */ -void V2Params_LoadEEPROMParamValues(void) +void V2Params_LoadNonVolatileParamValues(void) { - /* Target RESET line polarity is a non-volatile value, retrieve current parameter value from EEPROM */ + /* Target RESET line polarity is a non-volatile value, retrieve current parameter value from EEPROM - + * NB: Cannot call V2Protocol_SetParameterValue() here, as that will cause another EEPROM write! + */ V2Params_GetParamFromTable(PARAM_RESET_POLARITY)->ParamValue = eeprom_read_byte(&EEPROM_Rest_Polarity); } +/** Updates any parameter values that are sourced from hardware rather than explicitly set by the host, such as + * VTARGET levels from the ADC on supported AVR models. + */ +void V2Params_UpdateParamValues(void) +{ + #if defined(ADC) + /* Update VTARGET parameter with the latest ADC conversion of VTARGET on supported AVR models */ + V2Params_GetParamFromTable(PARAM_VTARGET)->ParamValue = ((5 * 10 * ADC_GetResult()) / 1024); + #endif +} + /** Retrieves the host PC read/write privellages for a given parameter in the parameter table. This should * be called before calls to \ref V2Params_GetParameterValue() or \ref V2Params_SetParameterValue() when * getting or setting parameter values in response to requests from the host. * - * \param ParamID Parameter ID whose privellages are to be retrieved from the table + * \param[in] ParamID Parameter ID whose privellages are to be retrieved from the table * * \return Privellages for the requested parameter, as a mask of PARAM_PRIV_* masks */ @@ -111,7 +124,7 @@ uint8_t V2Params_GetParameterPrivellages(uint8_t ParamID) /** Retrieves the current value for a given parameter in the parameter table. * - * \param ParamID Parameter ID whose value is to be retrieved from the table + * \param[in] ParamID Parameter ID whose value is to be retrieved from the table * * \return Current value of the parameter in the table, or 0 if not found */ @@ -127,8 +140,8 @@ uint8_t V2Params_GetParameterValue(uint8_t ParamID) /** Sets the value for a given parameter in the parameter table. * - * \param ParamID Parameter ID whose value is to be set in the table - * \param Value New value to set the parameter to + * \param[in] ParamID Parameter ID whose value is to be set in the table + * \param[in] Value New value to set the parameter to * * \return Pointer to the associated parameter information from the parameter table if found, NULL otherwise */ @@ -149,7 +162,7 @@ void V2Params_SetParameterValue(uint8_t ParamID, uint8_t Value) /** Retrieves a parameter entry (including ID, value and privellages) from the parameter table that matches the given * parameter ID. * - * \param ParamID Parameter ID to find in the table + * \param[in] ParamID Parameter ID to find in the table * * \return Pointer to the associated parameter information from the parameter table if found, NULL otherwise */