質問編集履歴
2
追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
https://www.denshi.club/parts/2021/04/raspberry-pi-pico-12-spi-apia-dmcp.html
|
2
|
-
を見て、下記のC言語プログラムをRaspberry Pi Picoに書き込んだら、MCP3008とSPI通信が出来たようなのですが、このプログラムは、3バイト、ダミーデータをMCP3008に書きこんで、MCP3008からRaspberry Pi Picoに返ってきた値3バイトをbufferに格納して、2バイト目のbufferと8ビット符号なし00000011の論理積を8ビット左にシフトした値と3バイト目のbufferの論理和に3.2562をかけて1024で割るみたいなことをしているのですか?
|
2
|
+
を見て、下記のC言語プログラムをRaspberry Pi Picoに書き込んだら、MCP3008とSPI通信が出来たようなのですが、このプログラムは、GP5をLowにしてから、GP3から3バイト、ダミーデータをMCP3008に書きこんで、MCP3008からRaspberry Pi Picoに返ってきた値3バイトをbufferに格納して、2バイト目のbufferと8ビット符号なし00000011の論理積を8ビット左にシフトした値と3バイト目のbufferの論理和に3.2562をかけて1024で割るみたいなことをしているのですか?
|
3
3
|
例えば、2バイト目のbufferが00100010で3バイト目のbufferが00101100だったら、00100010と00000011の論理積で00000010となり、00000010を8ビット左にシフトすると、00000000となり、00000000と00101100の論理和が44となり、44*3.2562/1024で0.13991484375になるということですか?
|
4
4
|
また、SPIのボーレートが2MHzとなっているのは、サンプル期間が終了してから10データビットがすべてクロック出力されるまでの時間が1.2 msを超えてはならないとMCP3008の仕様書に書いてあるからでしょうか?SPIのボーレートは1kHz以上ならどんな値でも大丈夫でしょうか?
|
5
5
|
|
1
追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
https://www.denshi.club/parts/2021/04/raspberry-pi-pico-12-spi-apia-dmcp.html
|
2
2
|
を見て、下記のC言語プログラムをRaspberry Pi Picoに書き込んだら、MCP3008とSPI通信が出来たようなのですが、このプログラムは、3バイト、ダミーデータをMCP3008に書きこんで、MCP3008からRaspberry Pi Picoに返ってきた値3バイトをbufferに格納して、2バイト目のbufferと8ビット符号なし00000011の論理積を8ビット左にシフトした値と3バイト目のbufferの論理和に3.2562をかけて1024で割るみたいなことをしているのですか?
|
3
3
|
例えば、2バイト目のbufferが00100010で3バイト目のbufferが00101100だったら、00100010と00000011の論理積で00000010となり、00000010を8ビット左にシフトすると、00000000となり、00000000と00101100の論理和が44となり、44*3.2562/1024で0.13991484375になるということですか?
|
4
|
+
また、SPIのボーレートが2MHzとなっているのは、サンプル期間が終了してから10データビットがすべてクロック出力されるまでの時間が1.2 msを超えてはならないとMCP3008の仕様書に書いてあるからでしょうか?SPIのボーレートは1kHz以上ならどんな値でも大丈夫でしょうか?
|
5
|
+
|
4
6
|
|
5
7
|
```
|
6
8
|
#include <stdio.h>
|