machine/rp2040: gpio and adc pin definitions

Этот коммит содержится в:
Yurii Soldak 2021-06-09 02:59:57 +02:00 коммит произвёл Ron Evans
родитель 1f5e4e79aa
коммит 95af444896
3 изменённых файлов: 72 добавлений и 42 удалений

Просмотреть файл

@ -4,45 +4,35 @@ package machine
// GPIO pins // GPIO pins
const ( const (
GP0 Pin = 0 GP0 Pin = GPIO0
GP1 Pin = 1 GP1 Pin = GPIO1
GP2 Pin = 2 GP2 Pin = GPIO2
GP3 Pin = 3 GP3 Pin = GPIO3
GP4 Pin = 4 GP4 Pin = GPIO4
GP5 Pin = 5 GP5 Pin = GPIO5
GP6 Pin = 6 GP6 Pin = GPIO6
GP7 Pin = 7 GP7 Pin = GPIO7
GP8 Pin = 8 GP8 Pin = GPIO8
GP9 Pin = 9 GP9 Pin = GPIO9
GP10 Pin = 10 GP10 Pin = GPIO10
GP11 Pin = 11 GP11 Pin = GPIO11
GP12 Pin = 12 GP12 Pin = GPIO12
GP13 Pin = 13 GP13 Pin = GPIO13
GP14 Pin = 14 GP14 Pin = GPIO14
GP15 Pin = 15 GP15 Pin = GPIO15
GP16 Pin = 16 GP16 Pin = GPIO16
GP17 Pin = 17 GP17 Pin = GPIO17
GP18 Pin = 18 GP18 Pin = GPIO18
GP19 Pin = 19 GP19 Pin = GPIO19
GP20 Pin = 20 GP20 Pin = GPIO20
GP21 Pin = 21 GP21 Pin = GPIO21
GP22 Pin = 22 GP22 Pin = GPIO22
GP23 Pin = 23 GP26 Pin = GPIO26
GP24 Pin = 24 GP27 Pin = GPIO27
GP25 Pin = 25 GP28 Pin = GPIO28
GP26 Pin = 26
GP27 Pin = 27
GP28 Pin = 28
GP29 Pin = 29
// Onboard LED // Onboard LED
LED Pin = GP25 LED Pin = GPIO25
// Analog pins
ADC0 = GP26
ADC1 = GP27
ADC2 = GP28
ADC3 = GP29
// Onboard crystal oscillator frequency, in MHz. // Onboard crystal oscillator frequency, in MHz.
xoscFreq = 12 // MHz xoscFreq = 12 // MHz

Просмотреть файл

@ -7,6 +7,46 @@ import (
_ "unsafe" _ "unsafe"
) )
const (
// GPIO pins
GPIO0 Pin = 0
GPIO1 Pin = 1
GPIO2 Pin = 2
GPIO3 Pin = 3
GPIO4 Pin = 4
GPIO5 Pin = 5
GPIO6 Pin = 6
GPIO7 Pin = 7
GPIO8 Pin = 8
GPIO9 Pin = 9
GPIO10 Pin = 10
GPIO11 Pin = 11
GPIO12 Pin = 12
GPIO13 Pin = 13
GPIO14 Pin = 14
GPIO15 Pin = 15
GPIO16 Pin = 16
GPIO17 Pin = 17
GPIO18 Pin = 18
GPIO19 Pin = 19
GPIO20 Pin = 20
GPIO21 Pin = 21
GPIO22 Pin = 22
GPIO23 Pin = 23
GPIO24 Pin = 24
GPIO25 Pin = 25
GPIO26 Pin = 26
GPIO27 Pin = 27
GPIO28 Pin = 28
GPIO29 Pin = 29
// Analog pins
ADC0 Pin = GPIO26
ADC1 Pin = GPIO27
ADC2 Pin = GPIO28
ADC3 Pin = GPIO29
)
//go:linkname machineInit runtime.machineInit //go:linkname machineInit runtime.machineInit
func machineInit() { func machineInit() {
// Reset all peripherals to put system into a known state, // Reset all peripherals to put system into a known state,

Просмотреть файл

@ -22,7 +22,7 @@ func InitADC() {
// Configure configures a ADC pin to be able to be used to read data. // Configure configures a ADC pin to be able to be used to read data.
func (a ADC) Configure(config ADCConfig) { func (a ADC) Configure(config ADCConfig) {
switch a.Pin { switch a.Pin {
case GP26, GP27, GP28, GP29: case ADC0, ADC1, ADC2, ADC3:
a.Pin.Configure(PinConfig{Mode: PinAnalog}) a.Pin.Configure(PinConfig{Mode: PinAnalog})
default: default:
// invalid ADC // invalid ADC
@ -47,13 +47,13 @@ func waitForReady() {
func (a ADC) getADCChannel() uint8 { func (a ADC) getADCChannel() uint8 {
switch a.Pin { switch a.Pin {
case GP26: case ADC0:
return 0 return 0
case GP27: case ADC1:
return 1 return 1
case GP28: case ADC2:
return 2 return 2
case GP29: case ADC3:
return 3 return 3
default: default:
return 0 return 0