@@ -119,14 +119,15 @@ static const uint8_t outcfg_tbl[32][4] =
119
119
{OUTC (1 , 7 , 1 ), OUTC (0 , 6 , 0 ), OUTC (1 , 7 , 0 ), OUTC (1 , 3 , 1 )}, // CTX31: B7OUT2, A6OUT, B7OUT, B3OUT2
120
120
};
121
121
122
- uint16_t _analogBits = 10 ; // 10-bit by default
123
- uint8_t _analogWriteBits = 8 ; // 8-bit by default for writes
124
- uint8_t _servoWriteBits = 8 ; // 8-bit by default for writes
122
+ uint16_t _analogBits = 10 ; // 10-bit by default
123
+ uint8_t _analogWriteBits = 8 ; // 8-bit by default for writes
124
+ uint8_t _servoWriteBits = 8 ; // 8-bit by default for writes
125
125
static bool ap3_adc_initialized = false ; // flag to show if the ADC has been initialized
126
126
127
127
uint16_t analogRead (uint8_t pinNumber)
128
128
{
129
- if (!ap3_adc_initialized){
129
+ if (!ap3_adc_initialized)
130
+ {
130
131
ap3_adc_setup ();
131
132
ap3_adc_initialized = true ;
132
133
}
@@ -297,13 +298,6 @@ ap3_err_t ap3_adc_setup()
297
298
return AP3_ERR;
298
299
}
299
300
300
- // Enable the ADC.
301
- if (AM_HAL_STATUS_SUCCESS != am_hal_adc_enable (g_ADCHandle))
302
- {
303
- // Serial.println("Error - enabling ADC failed.\n");
304
- return AP3_ERR;
305
- }
306
-
307
301
return AP3_OK;
308
302
}
309
303
@@ -350,6 +344,11 @@ ap3_err_t ap3_change_channel(uint8_t padNumber)
350
344
ADCSlotConfig.eMeasToAvg = AM_HAL_ADC_SLOT_AVG_1;
351
345
ADCSlotConfig.ePrecisionMode = AM_HAL_ADC_SLOT_14BIT;
352
346
347
+ if (AM_HAL_STATUS_SUCCESS != am_hal_adc_disable (g_ADCHandle))
348
+ {
349
+ return AP3_ERR;
350
+ }
351
+
353
352
// Look up adc channel based on pad number
354
353
uint8_t indi;
355
354
for (indi = 0 ; indi < AP3_ANALOG_CHANNELS; indi++)
@@ -375,6 +374,11 @@ ap3_err_t ap3_change_channel(uint8_t padNumber)
375
374
return AP3_ERR;
376
375
}
377
376
377
+ if (AM_HAL_STATUS_SUCCESS != am_hal_adc_enable (g_ADCHandle))
378
+ {
379
+ return AP3_ERR;
380
+ }
381
+
378
382
return AP3_OK;
379
383
}
380
384
@@ -667,12 +671,12 @@ ap3_err_t servoWriteResolution(uint8_t res)
667
671
668
672
uint8_t getServoResolution ()
669
673
{
670
- return (_servoWriteBits);
674
+ return (_servoWriteBits);
671
675
}
672
676
673
677
ap3_err_t servoWrite (uint8_t pin, uint32_t val)
674
678
{
675
- return (servoWrite (pin, val, 544 , 2400 )); // Call servoWrite with Arduino default min/max microseconds. See: https://www.arduino.cc/en/Reference/ServoAttach
679
+ return (servoWrite (pin, val, 544 , 2400 )); // Call servoWrite with Arduino default min/max microseconds. See: https://www.arduino.cc/en/Reference/ServoAttach
676
680
}
677
681
678
682
ap3_err_t servoWrite (uint8_t pin, uint32_t val, uint16_t minMicros, uint16_t maxMicros)
@@ -684,9 +688,9 @@ ap3_err_t servoWrite(uint8_t pin, uint32_t val, uint16_t minMicros, uint16_t max
684
688
uint32_t fw = 60000 ; // 20 ms wide frame
685
689
686
690
// Convert microSeconds to PWM counts.
687
- uint32_t min = minMicros * 3 ;
691
+ uint32_t min = minMicros * 3 ;
688
692
uint32_t max = maxMicros * 3 ;
689
-
693
+
690
694
uint32_t th = (uint32_t )(((max - min) * val) / fsv) + min;
691
695
692
696
return ap3_pwm_output (pin, th, fw, clk);
0 commit comments