Skip to content

Commit 23f1a51

Browse files
committed
Small error checking improvement to analogReadResolution()
1 parent e379561 commit 23f1a51

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

cores/arduino/ard_sup/analog/ap3_analog.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,9 +204,15 @@ uint16_t analogRead(uint8_t pinNumber)
204204

205205
//Apollo3 is capapble of 14-bit ADC but Arduino defaults to 10-bit
206206
//This modifies the global var that controls what is returned from analogRead()
207-
void analogReadResolution(uint8_t bits)
207+
ap3_err_t analogReadResolution(uint8_t bits)
208208
{
209-
_analogBits = bits;
209+
if (bits > 16)
210+
{
211+
_analogBits = 16; // max out the resolution when this happens
212+
return AP3_ERR;
213+
}
214+
_analogBits = res;
215+
return AP3_OK;
210216
}
211217

212218
ap3_err_t ap3_adc_setup()

cores/arduino/ard_sup/ap3_analog.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,11 @@ ap3_err_t ap3_analog_pad_funcsel(ap3_gpio_pad_t padNumber, uint8_t *funcsel);
4242
ap3_err_t ap3_change_channel(ap3_gpio_pad_t padNumber);
4343

4444
uint16_t analogRead(uint8_t pinNumber);
45-
void analogReadResolution(uint8_t bits);
46-
47-
ap3_err_t analogWriteResolution( uint8_t res );
48-
ap3_err_t analogWrite( uint8_t pin, uint32_t val );
49-
ap3_err_t servoWriteResolution( uint8_t res );
50-
ap3_err_t servoWrite( uint8_t pin, uint32_t val );
45+
ap3_err_t analogReadResolution(uint8_t bits);
5146

47+
ap3_err_t analogWriteResolution(uint8_t res);
48+
ap3_err_t analogWrite(uint8_t pin, uint32_t val);
49+
ap3_err_t servoWriteResolution(uint8_t res);
50+
ap3_err_t servoWrite(uint8_t pin, uint32_t val);
5251

5352
#endif // _AP3_ANALOG_H_

0 commit comments

Comments
 (0)