machine/atsamd21: add GPIO_INPUT_PULLUP and GPIO_INPUT_PULLDOWN GPIO pin config options
Signed-off-by: Ron Evans <ron@hybridgroup.com>
Этот коммит содержится в:
родитель
c56b2a45fa
коммит
34939ab422
1 изменённых файлов: 36 добавлений и 13 удалений
|
@ -34,6 +34,7 @@ const (
|
|||
GPIO_OUTPUT = 11
|
||||
GPIO_PWM = GPIO_TIMER
|
||||
GPIO_PWM_ALT = GPIO_TIMER_ALT
|
||||
GPIO_INPUT_PULLDOWN = 12
|
||||
)
|
||||
|
||||
// Hardware pins
|
||||
|
@ -127,6 +128,28 @@ func (p GPIO) Configure(config GPIOConfig) {
|
|||
p.setPinCfg(sam.PORT_PINCFG0_INEN)
|
||||
}
|
||||
|
||||
case GPIO_INPUT_PULLDOWN:
|
||||
if p.Pin < 32 {
|
||||
sam.PORT.DIRCLR0 = (1 << p.Pin)
|
||||
sam.PORT.OUTCLR0 = (1 << p.Pin)
|
||||
p.setPinCfg(sam.PORT_PINCFG0_INEN | sam.PORT_PINCFG0_PULLEN)
|
||||
} else {
|
||||
sam.PORT.DIRCLR1 = (1<<p.Pin - 32)
|
||||
sam.PORT.OUTCLR1 = (1<<p.Pin - 32)
|
||||
p.setPinCfg(sam.PORT_PINCFG0_INEN | sam.PORT_PINCFG0_PULLEN)
|
||||
}
|
||||
|
||||
case GPIO_INPUT_PULLUP:
|
||||
if p.Pin < 32 {
|
||||
sam.PORT.DIRCLR0 = (1 << p.Pin)
|
||||
sam.PORT.OUTSET0 = (1 << p.Pin)
|
||||
p.setPinCfg(sam.PORT_PINCFG0_INEN | sam.PORT_PINCFG0_PULLEN)
|
||||
} else {
|
||||
sam.PORT.DIRCLR1 = (1<<p.Pin - 32)
|
||||
sam.PORT.OUTSET1 = (1<<p.Pin - 32)
|
||||
p.setPinCfg(sam.PORT_PINCFG0_INEN | sam.PORT_PINCFG0_PULLEN)
|
||||
}
|
||||
|
||||
case GPIO_SERCOM:
|
||||
if p.Pin&1 > 0 {
|
||||
// odd pin, so save the even pins
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче