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

回答編集履歴

3

追記修正

2019/04/03 15:29

投稿

mt08
mt08

スコア1825

answer CHANGED
@@ -53,7 +53,7 @@
53
53
 
54
54
  `((SGL_DIFF << 3) | ((D2<<2) | (D1 << 1) | D0) ) << 4`
55
55
 
56
- SGL_DIFF = 1
56
+ - `SGL_DIFF = 1`
57
- ((D2<<2) | (D1 << 1) | D0) => Channel番号
57
+ - `((D2<<2) | (D1 << 1) | D0)` => Channel番号
58
58
 
59
59
  で、どうでしょう? データシートの図と見比べてみてください

2

説明追記

2019/04/03 15:29

投稿

mt08
mt08

スコア1825

answer CHANGED
@@ -44,4 +44,16 @@
44
44
 
45
45
  > ・8+channelとは何なのか、なぜ4bitシフトさせるのか
46
46
 
47
- ↑で説明したとおり、MCP3008の通信仕様、ですね。
47
+ ↑で説明したとおり、MCP3008の通信仕様、ですね。
48
+
49
+
50
+ ---
51
+ 追記:
52
+ XxkanakoxXさん、
53
+
54
+ `((SGL_DIFF << 3) | ((D2<<2) | (D1 << 1) | D0) ) << 4`
55
+
56
+ SGL_DIFF = 1
57
+ ((D2<<2) | (D1 << 1) | D0) => Channel番号
58
+
59
+ で、どうでしょう? データシートの図と見比べてみてください

1

修正

2019/04/03 15:27

投稿

mt08
mt08

スコア1825

answer CHANGED
@@ -19,7 +19,7 @@
19
19
  なので、(( (1<<3) + Ch ) << 4) が、2バイトの入力. [ (1<<3) => 8 です。 ]
20
20
  - 3バイト目: MCPからの出力を受け取るだけなので、0 としています。(これをいれないと、SCLKが作られないので.)
21
21
 
22
- 同様に、D_OUT側ですが、2バイト目のかいビットと、3バイト目で、10ビットのデータになる、とのことで、 ((adc[1] & 3) << 8) + adc[2]) となります。
22
+ 同様に、D_OUT側ですが、2バイト目の下位2ビットと、3バイト目で、10ビットのデータになる、とのことで、 ((adc[1] & 3) << 8) + adc[2]) となります。
23
23
 
24
24
 
25
25
  その次、pythonの[spidev](https://github.com/doceme/py-spidev)をみます。下の方にChip-Selectの制御の違いがかいてありますね。