Fixed Device mode HID Class driver always sending IN reports, even when no data is...
[pub/USBasp.git] / Projects / AVRISP / AVRISP.c
index f14b654..ce16aeb 100644 (file)
@@ -35,7 +35,6 @@
  */\r
 \r
 // TODO: Add in software SPI for lower programming speeds below 125KHz\r
-// TODO: Add in VTARGET detection\r
 // TODO: Add reversed target connector checks\r
 \r
 #include "AVRISP.h"\r
@@ -53,7 +52,12 @@ int main(void)
 \r
        for (;;)\r
        {
-               Process_AVRISP_Commands();
+               Process_AVRISP_Commands();\r
+               \r
+               #if defined(ADC)\r
+               /* Update VTARGET parameter with the latest ADC conversion of VTARGET on supported AVR models */\r
+               V2Params_SetParameterValue(PARAM_VTARGET, ((5 * 10 * ADC_GetResult()) / 1024));\r
+               #endif
 \r
                USB_USBTask();\r
        }\r
@@ -73,7 +77,14 @@ void SetupHardware(void)
        LEDs_Init();\r
        USB_Init();\r
 \r
-       /* Millisecond timer initialization for timeout checking */\r
+       #if defined(ADC)\r
+       /* Initialize the ADC converter for VTARGET level detection on supported AVR models */\r
+       ADC_Init(ADC_FREE_RUNNING | ADC_PRESCALE_128);\r
+       ADC_SetupChannel(VTARGET_ADC_CHANNEL);\r
+       ADC_StartReading(VTARGET_ADC_CHANNEL | ADC_RIGHT_ADJUSTED | ADC_REFERENCE_AVCC);\r
+       #endif\r
+       \r
+       /* Millisecond timer initialization for timeouts and delays */\r
        OCR0A  = ((F_CPU / 64) / 1000);\r
        TCCR0A = (1 << WGM01);\r
        TCCR0B = ((1 << CS01) | (1 << CS00));\r