質問するログイン新規登録

質問編集履歴

3

数字の修正

2019/05/24 10:04

投稿

morleyrobertson
morleyrobertson

スコア12

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なら0b00000100が、27ピンがONなら0b00001000が入る
33
+ //inputには26ピンがONなら0b11111011が、27ピンがONなら0b11110111が入る
34
34
  }
35
35
  ```

2

結果

2019/05/24 10:04

投稿

morleyrobertson
morleyrobertson

スコア12

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

太字の修正

2019/05/24 09:54

投稿

morleyrobertson
morleyrobertson

スコア12

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
  どなたかアドバイス頂けますでしょうか。