Add analogRead and A0...A3 pins
This commit is contained in:
parent
899f679986
commit
2c927d2bcb
3 changed files with 23 additions and 1 deletions
|
|
@ -29,13 +29,21 @@ typedef uint8_t pin_size_t;
|
|||
|
||||
|
||||
void pinMode(pin_size_t pinNumber, PinMode pinMode);
|
||||
|
||||
// SIO (GPIO)
|
||||
void digitalWrite(pin_size_t pinNumber, PinStatus status);
|
||||
PinStatus digitalRead(pin_size_t pinNumber);
|
||||
|
||||
// ADC
|
||||
static const pin_size_t A0 = 26;
|
||||
static const pin_size_t A1 = 27;
|
||||
static const pin_size_t A2 = 28;
|
||||
static const pin_size_t A3 = 29;
|
||||
int analogRead(pin_size_t pinNumber);
|
||||
|
||||
// PWM
|
||||
void analogWrite(pin_size_t pinNumber, int value);
|
||||
|
||||
|
||||
void delay(unsigned long);
|
||||
void delayMicroseconds(unsigned int us);
|
||||
unsigned long millis();
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
#include "../../pico-sdk/src/rp2_common/hardware_clocks/include/hardware/clocks.h"
|
||||
#include "../../pico-sdk/src/rp2_common/hardware_pll/include/hardware/pll.h"
|
||||
#include "../../pico-sdk/src/rp2_common/hardware_clocks/include/hardware/clocks.h"
|
||||
#include "../../pico-sdk/src/rp2_common/hardware_adc/include/hardware/adc.h"
|
||||
|
||||
static int32_t analogScale = 255;
|
||||
static uint32_t analogMap = 0;
|
||||
|
|
@ -77,3 +78,16 @@ extern "C" void analogWrite(pin_size_t pin, int val) {
|
|||
pwm_set_gpio_level(pin, val);
|
||||
}
|
||||
|
||||
extern "C" int analogRead(pin_size_t pinNumber) {
|
||||
if ((pinNumber < A0) || (pinNumber > A3)) {
|
||||
return 0;
|
||||
}
|
||||
static bool adcInitted = false;
|
||||
if (!adcInitted) {
|
||||
adc_init();
|
||||
}
|
||||
adc_gpio_init(pinNumber);
|
||||
adc_select_input(pinNumber - A0);
|
||||
return adc_read();
|
||||
}
|
||||
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Reference in a new issue