質問編集履歴
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -34,4 +34,40 @@
|
|
34
34
|
|
35
35
|
while True:
|
36
36
|
print (pi.i2c_read_i2c_block_data(hndl,REG_GPIOA,0x01))
|
37
|
-
```
|
37
|
+
```
|
38
|
+
|
39
|
+
#追記1
|
40
|
+
```
|
41
|
+
data = pi.i2c_read_i2c_block_data(hndl,REG_GPIOA,0x1)
|
42
|
+
print(hex(~data&0xff))
|
43
|
+
```
|
44
|
+
にしたところ
|
45
|
+
```
|
46
|
+
Traceback (most recent call last):
|
47
|
+
File "python-osc.py", line 35, in <module>
|
48
|
+
print(hex(~data&0xff))
|
49
|
+
TypeError: bad operand type for unary ~: 'tuple'
|
50
|
+
```
|
51
|
+
このようなエラーになりました。
|
52
|
+
|
53
|
+
dataの出力される情報が良くないと思い、dataを変えました
|
54
|
+
```Python3
|
55
|
+
data = pi.i2c_read_byte_data(hndl,REG_GPIOA)
|
56
|
+
print(hex(~data&0xff))
|
57
|
+
```
|
58
|
+
すると
|
59
|
+
```Python
|
60
|
+
0x0 #何も押していない
|
61
|
+
0x1 #ボタン1を押している時
|
62
|
+
0x2 #ボタン2を押している時
|
63
|
+
0x3 #ボタン1とボタン2を同時に押している時
|
64
|
+
```
|
65
|
+
と出力されました。
|
66
|
+
たぶん、入力するポートを**pi.i2c_read_byte_data()**では指定できないからだと思います。
|
67
|
+
|
68
|
+
他に、
|
69
|
+
```Python
|
70
|
+
data = pi.i2c_read_byte_data(hndl,0x01)#ポート1だけ読み込むの意味
|
71
|
+
print(hex(~data&0xff))
|
72
|
+
```
|
73
|
+
では、エラーが出なかったけど、数値が変更されずでした。
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
#試したこと・困っていること
|
11
11
|
|
12
|
-
下のを実行しました。数値が押していたら254、そうでなければ255が出力されてしまいました。
|
12
|
+
下のを実行しました。数値が押していたら0xfe(254)、そうでなければ0xff(255)が出力されてしまいました。
|
13
13
|
|
14
14
|
```Python3
|
15
15
|
import pigpio
|
@@ -33,5 +33,5 @@
|
|
33
33
|
pi.i2c_write_byte_data(hndl,REG_GPPUA,0xff) #とりあえずAの全てプルアップします。
|
34
34
|
|
35
35
|
while True:
|
36
|
-
print (pi.
|
36
|
+
print (pi.i2c_read_i2c_block_data(hndl,REG_GPIOA,0x01))
|
37
37
|
```
|