電子ペーパーで所在を表示しておくプレートのプログラムです

Dependencies:   SDFileSystem mbed

Committer:
kohacraft
Date:
Tue May 23 22:37:09 2017 +0000
Revision:
2:3ca92c70070c
Parent:
1:bd1c3875fb64
????

Who changed what in which revision?

UserRevisionLine numberNew 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 }