Add analogRead and A0...A3 pins

This commit is contained in:
Earle F. Philhower, III 2021-02-26 12:42:59 -08:00
parent 899f679986
commit 2c927d2bcb
3 changed files with 23 additions and 1 deletions

View file

@ -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();

View file

@ -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.