質問編集履歴
3
数字の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -30,6 +30,6 @@
|
|
30
30
|
gpio_in_reg = gpio_in_reg | ~GPIO_IN_REG_BUTTON_MASK; //マスクを使って必要なとこ以外は1に
|
31
31
|
gpio_in_reg >>= 24;//必要なのは上位8ビットだけ
|
32
32
|
byte input = gpio_in_reg;
|
33
|
-
//inputには26ピンがONなら
|
33
|
+
//inputには26ピンがONなら0b11111011が、27ピンがONなら0b11110111が入る
|
34
34
|
}
|
35
35
|
```
|
2
結果
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,4 +11,25 @@
|
|
11
11
|
具体的にどうコーディングすれば良いのか見当がつきません。
|
12
12
|
どなたかアドバイス頂けますでしょうか。
|
13
13
|
|
14
|
-
よろしくお願いいたします。
|
14
|
+
よろしくお願いいたします。
|
15
|
+
|
16
|
+
【5月24日追記】
|
17
|
+
アドバイス頂いたおかげで、期待通りの動きになりました。
|
18
|
+
### アドバイス頂いた皆様、誠にありがとうございました。
|
19
|
+
最終的にこうなりました。
|
20
|
+
```C++
|
21
|
+
//26ピンと27ピンのフラグを立てる
|
22
|
+
static const uint32_t GPIO_IN_REG_MASK = 0b00001100000000000000000000000000;
|
23
|
+
void setup() {
|
24
|
+
//26と27はインプットだよ。プルアップ抵抗よろしくね。
|
25
|
+
pinMode(26, INPUT_PULLUP);
|
26
|
+
pinMode(27, INPUT_PULLUP);
|
27
|
+
}
|
28
|
+
void loop() {
|
29
|
+
uint32_t gpio_in_reg = *((uint32_t *)0x3FF4403C); // 読み取り
|
30
|
+
gpio_in_reg = gpio_in_reg | ~GPIO_IN_REG_BUTTON_MASK; //マスクを使って必要なとこ以外は1に
|
31
|
+
gpio_in_reg >>= 24;//必要なのは上位8ビットだけ
|
32
|
+
byte input = gpio_in_reg;
|
33
|
+
//inputには26ピンがONなら0b00000100が、27ピンがONなら0b00001000が入る
|
34
|
+
}
|
35
|
+
```
|
1
太字の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,12 +3,10 @@
|
|
3
3
|
|
4
4
|
同じことをESP32-DevkitCの26ピンと27ピンを使ってやりたいと考えています。
|
5
5
|
公式のリファレンスの4.12 Register Summaryには、
|
6
|
-
**
|
7
|
-
NAME: GPIO_IN_REG
|
6
|
+
**NAME: GPIO_IN_REG**
|
8
|
-
Description: GPIO 0-31 input register
|
7
|
+
**Description: GPIO 0-31 input register**
|
9
|
-
Address: 0x3FF4403C
|
8
|
+
**Address: 0x3FF4403C**
|
10
|
-
Access: read only
|
9
|
+
**Access: read only**
|
11
|
-
**
|
12
10
|
とあり、この辺りにそれらしい事が書かれていることは調べがついたのですが、
|
13
11
|
具体的にどうコーディングすれば良いのか見当がつきません。
|
14
12
|
どなたかアドバイス頂けますでしょうか。
|