電子ペーパーで所在を表示しておくプレートのプログラムです
Dependencies: SDFileSystem mbed
extdio.cpp@2:3ca92c70070c, 2017-05-23 (annotated)
- Committer:
- kohacraft
- Date:
- Tue May 23 22:37:09 2017 +0000
- Revision:
- 2:3ca92c70070c
- Parent:
- 1:bd1c3875fb64
????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kohacraft | 1:bd1c3875fb64 | 1 | /* 電子ペーパーインタフェース回路(シリアルパラレル変換)の制御用です */ |
kohacraft | 1:bd1c3875fb64 | 2 | |
kohacraft | 0:eca549a6e38d | 3 | #include "mbed.h" |
kohacraft | 0:eca549a6e38d | 4 | #include "extdio.h" |
kohacraft | 0:eca549a6e38d | 5 | |
kohacraft | 0:eca549a6e38d | 6 | |
kohacraft | 0:eca549a6e38d | 7 | DigitalOut CL(dp9); |
kohacraft | 0:eca549a6e38d | 8 | DigitalOut sdata(dp10); |
kohacraft | 0:eca549a6e38d | 9 | DigitalOut sclock(dp11); |
kohacraft | 0:eca549a6e38d | 10 | DigitalOut sdlatch(dp14); |
kohacraft | 0:eca549a6e38d | 11 | DigitalOut sclatch(dp13); |
kohacraft | 0:eca549a6e38d | 12 | |
kohacraft | 1:bd1c3875fb64 | 13 | char _contBusState = 0; //制御バスの状態保存 |
kohacraft | 1:bd1c3875fb64 | 14 | char _olddata; //データバスの過去データ保存 |
kohacraft | 1:bd1c3875fb64 | 15 | |
kohacraft | 0:eca549a6e38d | 16 | void setCL( bool state ) |
kohacraft | 0:eca549a6e38d | 17 | { |
kohacraft | 0:eca549a6e38d | 18 | CL = state; |
kohacraft | 1:bd1c3875fb64 | 19 | return; |
kohacraft | 0:eca549a6e38d | 20 | } |
kohacraft | 0:eca549a6e38d | 21 | |
kohacraft | 0:eca549a6e38d | 22 | //制御バスピン変更 |
kohacraft | 1:bd1c3875fb64 | 23 | void setContBus( char mask , bool state ) |
kohacraft | 0:eca549a6e38d | 24 | { |
kohacraft | 0:eca549a6e38d | 25 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 26 | sclatch = 0; |
kohacraft | 0:eca549a6e38d | 27 | if( state == true) |
kohacraft | 0:eca549a6e38d | 28 | { |
kohacraft | 1:bd1c3875fb64 | 29 | _contBusState = _contBusState | mask; |
kohacraft | 0:eca549a6e38d | 30 | } |
kohacraft | 0:eca549a6e38d | 31 | else |
kohacraft | 0:eca549a6e38d | 32 | { |
kohacraft | 1:bd1c3875fb64 | 33 | _contBusState = _contBusState & (~mask); |
kohacraft | 0:eca549a6e38d | 34 | } |
kohacraft | 0:eca549a6e38d | 35 | char sendData; |
kohacraft | 1:bd1c3875fb64 | 36 | sendData = _contBusState; |
kohacraft | 0:eca549a6e38d | 37 | char bitMask = 0x80; |
kohacraft | 0:eca549a6e38d | 38 | |
kohacraft | 0:eca549a6e38d | 39 | //MSBから1bitずつ転送 |
kohacraft | 0:eca549a6e38d | 40 | sdata = sendData & bitMask; |
kohacraft | 0:eca549a6e38d | 41 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 42 | bitMask = bitMask >> 1; |
kohacraft | 0:eca549a6e38d | 43 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 44 | |
kohacraft | 0:eca549a6e38d | 45 | sdata = sendData & bitMask; |
kohacraft | 0:eca549a6e38d | 46 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 47 | bitMask = bitMask >> 1; |
kohacraft | 0:eca549a6e38d | 48 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 49 | |
kohacraft | 0:eca549a6e38d | 50 | sdata = sendData & bitMask; |
kohacraft | 0:eca549a6e38d | 51 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 52 | bitMask = bitMask >> 1; |
kohacraft | 0:eca549a6e38d | 53 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 54 | |
kohacraft | 0:eca549a6e38d | 55 | sdata = sendData & bitMask; |
kohacraft | 0:eca549a6e38d | 56 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 57 | bitMask = bitMask >> 1; |
kohacraft | 0:eca549a6e38d | 58 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 59 | |
kohacraft | 0:eca549a6e38d | 60 | sdata = sendData & bitMask; |
kohacraft | 0:eca549a6e38d | 61 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 62 | bitMask = bitMask >> 1; |
kohacraft | 0:eca549a6e38d | 63 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 64 | |
kohacraft | 0:eca549a6e38d | 65 | sdata = sendData & bitMask; |
kohacraft | 0:eca549a6e38d | 66 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 67 | bitMask = bitMask >> 1; |
kohacraft | 0:eca549a6e38d | 68 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 69 | |
kohacraft | 0:eca549a6e38d | 70 | sdata = sendData & bitMask; |
kohacraft | 0:eca549a6e38d | 71 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 72 | bitMask = bitMask >> 1; |
kohacraft | 0:eca549a6e38d | 73 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 74 | |
kohacraft | 0:eca549a6e38d | 75 | sdata = sendData & bitMask; |
kohacraft | 0:eca549a6e38d | 76 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 77 | bitMask = bitMask >> 1; |
kohacraft | 0:eca549a6e38d | 78 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 79 | |
kohacraft | 0:eca549a6e38d | 80 | //ラッチ |
kohacraft | 0:eca549a6e38d | 81 | sclatch = 1; |
kohacraft | 0:eca549a6e38d | 82 | sclatch = 0; |
kohacraft | 1:bd1c3875fb64 | 83 | |
kohacraft | 1:bd1c3875fb64 | 84 | return; |
kohacraft | 0:eca549a6e38d | 85 | } |
kohacraft | 0:eca549a6e38d | 86 | |
kohacraft | 0:eca549a6e38d | 87 | //データバスピン変更 |
kohacraft | 1:bd1c3875fb64 | 88 | void setDataBus( char data ) |
kohacraft | 0:eca549a6e38d | 89 | { |
kohacraft | 0:eca549a6e38d | 90 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 91 | sdlatch = 0; |
kohacraft | 0:eca549a6e38d | 92 | |
kohacraft | 0:eca549a6e38d | 93 | //過去と同じ値だったら上書きしない |
kohacraft | 1:bd1c3875fb64 | 94 | if( _olddata == data ) |
kohacraft | 0:eca549a6e38d | 95 | { |
kohacraft | 0:eca549a6e38d | 96 | return; |
kohacraft | 0:eca549a6e38d | 97 | } |
kohacraft | 1:bd1c3875fb64 | 98 | _olddata = data; |
kohacraft | 0:eca549a6e38d | 99 | |
kohacraft | 1:bd1c3875fb64 | 100 | sdata = data&0x01; |
kohacraft | 0:eca549a6e38d | 101 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 102 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 103 | |
kohacraft | 1:bd1c3875fb64 | 104 | sdata = data&0x02; |
kohacraft | 1:bd1c3875fb64 | 105 | sclock = 1; |
kohacraft | 1:bd1c3875fb64 | 106 | sclock = 0; |
kohacraft | 1:bd1c3875fb64 | 107 | |
kohacraft | 1:bd1c3875fb64 | 108 | sdata = data&0x04; |
kohacraft | 0:eca549a6e38d | 109 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 110 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 111 | |
kohacraft | 1:bd1c3875fb64 | 112 | sdata = data&0x08; |
kohacraft | 0:eca549a6e38d | 113 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 114 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 115 | |
kohacraft | 1:bd1c3875fb64 | 116 | sdata = data&0x10; |
kohacraft | 0:eca549a6e38d | 117 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 118 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 119 | |
kohacraft | 1:bd1c3875fb64 | 120 | sdata = data&0x20; |
kohacraft | 0:eca549a6e38d | 121 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 122 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 123 | |
kohacraft | 1:bd1c3875fb64 | 124 | sdata = data&0x40; |
kohacraft | 0:eca549a6e38d | 125 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 126 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 127 | |
kohacraft | 1:bd1c3875fb64 | 128 | sdata = data&0x80; |
kohacraft | 0:eca549a6e38d | 129 | sclock = 1; |
kohacraft | 0:eca549a6e38d | 130 | sclock = 0; |
kohacraft | 0:eca549a6e38d | 131 | |
kohacraft | 0:eca549a6e38d | 132 | //ラッチ |
kohacraft | 0:eca549a6e38d | 133 | sdlatch = 1; |
kohacraft | 0:eca549a6e38d | 134 | sdlatch = 0; |
kohacraft | 1:bd1c3875fb64 | 135 | |
kohacraft | 1:bd1c3875fb64 | 136 | return; |
kohacraft | 0:eca549a6e38d | 137 | } |