Virtual SPI interface library. SPI専用ピンを使わず、通常のIOピンを使用してSPI通信を偽装します。 使い方は通常のSPIと同じようなものですが、frequency(周波数)の設定があまり厳密ではないので実験用途でデバッグしたいとき等にご使用ください。 「SPI専用のピンが壊れているのではないのか?」というときの確認に便利です。 Implement the SPI communication in the "only general purpose IO pin" without a SPI pin.
VSPI.h@0:1d153d73d37d, 2015-05-30 (annotated)
- Committer:
- Yajirushi
- Date:
- Sat May 30 12:57:17 2015 +0000
- Revision:
- 0:1d153d73d37d
first commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Yajirushi | 0:1d153d73d37d | 1 | #include "mbed.h" |
Yajirushi | 0:1d153d73d37d | 2 | |
Yajirushi | 0:1d153d73d37d | 3 | #ifndef VSPI_H |
Yajirushi | 0:1d153d73d37d | 4 | #define VSPI_H |
Yajirushi | 0:1d153d73d37d | 5 | |
Yajirushi | 0:1d153d73d37d | 6 | class VSPI{ |
Yajirushi | 0:1d153d73d37d | 7 | public: |
Yajirushi | 0:1d153d73d37d | 8 | VSPI(PinName mosi, PinName sclk); |
Yajirushi | 0:1d153d73d37d | 9 | VSPI(PinName mosi, PinName miso, PinName sclk); |
Yajirushi | 0:1d153d73d37d | 10 | VSPI(PinName mosi, PinName miso, PinName sclk, PinName csel); |
Yajirushi | 0:1d153d73d37d | 11 | |
Yajirushi | 0:1d153d73d37d | 12 | private: |
Yajirushi | 0:1d153d73d37d | 13 | DigitalOut *mo; |
Yajirushi | 0:1d153d73d37d | 14 | DigitalIn *mi; |
Yajirushi | 0:1d153d73d37d | 15 | DigitalOut *cl; |
Yajirushi | 0:1d153d73d37d | 16 | DigitalOut *cs; |
Yajirushi | 0:1d153d73d37d | 17 | |
Yajirushi | 0:1d153d73d37d | 18 | bool hasInput; |
Yajirushi | 0:1d153d73d37d | 19 | bool hasSelect; |
Yajirushi | 0:1d153d73d37d | 20 | |
Yajirushi | 0:1d153d73d37d | 21 | unsigned int freq; |
Yajirushi | 0:1d153d73d37d | 22 | unsigned int w_us; |
Yajirushi | 0:1d153d73d37d | 23 | unsigned char mode; |
Yajirushi | 0:1d153d73d37d | 24 | unsigned char bits; |
Yajirushi | 0:1d153d73d37d | 25 | |
Yajirushi | 0:1d153d73d37d | 26 | bool activeLow; |
Yajirushi | 0:1d153d73d37d | 27 | bool msbf; |
Yajirushi | 0:1d153d73d37d | 28 | |
Yajirushi | 0:1d153d73d37d | 29 | bool isHigh; |
Yajirushi | 0:1d153d73d37d | 30 | |
Yajirushi | 0:1d153d73d37d | 31 | public: |
Yajirushi | 0:1d153d73d37d | 32 | void format(unsigned char bits, unsigned char mode = 0); |
Yajirushi | 0:1d153d73d37d | 33 | void frequency(unsigned int hz = 1000000); |
Yajirushi | 0:1d153d73d37d | 34 | int write(int value); |
Yajirushi | 0:1d153d73d37d | 35 | int wwcs(int value); |
Yajirushi | 0:1d153d73d37d | 36 | int wwcs(int value, unsigned int waitMicros); |
Yajirushi | 0:1d153d73d37d | 37 | void setBitOrder(bool isMSBfirst = true); |
Yajirushi | 0:1d153d73d37d | 38 | void setCSmode(bool isActiveLow = true); |
Yajirushi | 0:1d153d73d37d | 39 | void setCS(bool H); |
Yajirushi | 0:1d153d73d37d | 40 | bool getCS(); |
Yajirushi | 0:1d153d73d37d | 41 | bool csInvert(); |
Yajirushi | 0:1d153d73d37d | 42 | }; |
Yajirushi | 0:1d153d73d37d | 43 | |
Yajirushi | 0:1d153d73d37d | 44 | #endif |