質問編集履歴

3

数字の修正

2019/05/24 10:04

投稿

morleyrobertson
morleyrobertson

スコア12

test CHANGED
File without changes
test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
  byte input = gpio_in_reg;
64
64
 
65
- //inputには26ピンがONなら0b00000100が、27ピンがONなら0b00001000が入る
65
+ //inputには26ピンがONなら0b11111011が、27ピンがONなら0b11110111が入る
66
66
 
67
67
  }
68
68
 

2

結果

2019/05/24 10:04

投稿

morleyrobertson
morleyrobertson

スコア12

test CHANGED
File without changes
test CHANGED
@@ -25,3 +25,45 @@
25
25
 
26
26
 
27
27
  よろしくお願いいたします。
28
+
29
+
30
+
31
+ 【5月24日追記】
32
+
33
+ アドバイス頂いたおかげで、期待通りの動きになりました。
34
+
35
+ ### アドバイス頂いた皆様、誠にありがとうございました。
36
+
37
+ 最終的にこうなりました。
38
+
39
+ ```C++
40
+
41
+ //26ピンと27ピンのフラグを立てる
42
+
43
+ static const uint32_t GPIO_IN_REG_MASK = 0b00001100000000000000000000000000;
44
+
45
+ void setup() {
46
+
47
+ //26と27はインプットだよ。プルアップ抵抗よろしくね。
48
+
49
+  pinMode(26, INPUT_PULLUP);
50
+
51
+ pinMode(27, INPUT_PULLUP);
52
+
53
+ }
54
+
55
+ void loop() {
56
+
57
+ uint32_t gpio_in_reg = *((uint32_t *)0x3FF4403C); // 読み取り
58
+
59
+ gpio_in_reg = gpio_in_reg | ~GPIO_IN_REG_BUTTON_MASK; //マスクを使って必要なとこ以外は1に
60
+
61
+ gpio_in_reg >>= 24;//必要なのは上位8ビットだけ
62
+
63
+ byte input = gpio_in_reg;
64
+
65
+ //inputには26ピンがONなら0b00000100が、27ピンがONなら0b00001000が入る
66
+
67
+ }
68
+
69
+ ```

1

太字の修正

2019/05/24 09:54

投稿

morleyrobertson
morleyrobertson

スコア12

test CHANGED
File without changes
test CHANGED
@@ -8,17 +8,13 @@
8
8
 
9
9
  公式のリファレンスの4.12 Register Summaryには、
10
10
 
11
- **
11
+ **NAME: GPIO_IN_REG**
12
12
 
13
- NAME: GPIO_IN_REG
13
+ **Description: GPIO 0-31 input register**
14
14
 
15
- Description: GPIO 0-31 input register
15
+ **Address: 0x3FF4403C**
16
16
 
17
- Address: 0x3FF4403C
18
-
19
- Access: read only
17
+ **Access: read only**
20
-
21
- **
22
18
 
23
19
  とあり、この辺りにそれらしい事が書かれていることは調べがついたのですが、
24
20