E_paper, E_ink, Screen size 1.54", resolution 200x200, 4 wire spi, Waveshare, Black and White, Kl25Z, 8 wire print connector, supply 3.3 Volt, IL0373 Controller, font size is 8, 12, 16 and 24.

Dependencies:   mbed

Committer:
GerritPathuis
Date:
Mon Mar 26 17:20:56 2018 +0000
Revision:
1:d27a7e06c233
Parent:
0:665e04c85d8d
Child:
2:d7fc318a1528
Tussenstand

Who changed what in which revision?

UserRevisionLine numberNew contents of line
GerritPathuis 0:665e04c85d8d 1 /**
GerritPathuis 0:665e04c85d8d 2 * @filename : epdif.cpp
GerritPathuis 0:665e04c85d8d 3 * @brief : Implements EPD interface functions
GerritPathuis 0:665e04c85d8d 4 * Users have to implement all the functions in epdif.cpp
GerritPathuis 0:665e04c85d8d 5 * @author : Yehui from Waveshare
GerritPathuis 0:665e04c85d8d 6 *
GerritPathuis 0:665e04c85d8d 7 * Copyright (C) Waveshare August 10 2017
GerritPathuis 0:665e04c85d8d 8 *
GerritPathuis 0:665e04c85d8d 9 * Permission is hereby granted, free of charge, to any person obtaining a copy
GerritPathuis 0:665e04c85d8d 10 * of this software and associated documnetation files (the "Software"), to deal
GerritPathuis 0:665e04c85d8d 11 * in the Software without restriction, including without limitation the rights
GerritPathuis 0:665e04c85d8d 12 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
GerritPathuis 0:665e04c85d8d 13 * copies of the Software, and to permit persons to whom the Software is
GerritPathuis 0:665e04c85d8d 14 * furished to do so, subject to the following conditions:
GerritPathuis 0:665e04c85d8d 15 *
GerritPathuis 0:665e04c85d8d 16 * The above copyright notice and this permission notice shall be included in
GerritPathuis 0:665e04c85d8d 17 * all copies or substantial portions of the Software.
GerritPathuis 0:665e04c85d8d 18 *
GerritPathuis 0:665e04c85d8d 19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
GerritPathuis 0:665e04c85d8d 20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
GerritPathuis 0:665e04c85d8d 21 * FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
GerritPathuis 0:665e04c85d8d 22 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
GerritPathuis 0:665e04c85d8d 23 * LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
GerritPathuis 0:665e04c85d8d 24 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
GerritPathuis 0:665e04c85d8d 25 * THE SOFTWARE.
GerritPathuis 0:665e04c85d8d 26 */
GerritPathuis 0:665e04c85d8d 27
GerritPathuis 1:d27a7e06c233 28 #ifndef MBED_H_
GerritPathuis 1:d27a7e06c233 29 #define MBED_H_
GerritPathuis 1:d27a7e06c233 30 #endif
GerritPathuis 1:d27a7e06c233 31
GerritPathuis 0:665e04c85d8d 32 #include "epdif.h"
GerritPathuis 0:665e04c85d8d 33
GerritPathuis 1:d27a7e06c233 34 EpdIf::EpdIf()
GerritPathuis 1:d27a7e06c233 35 {
GerritPathuis 1:d27a7e06c233 36 };
GerritPathuis 0:665e04c85d8d 37
GerritPathuis 1:d27a7e06c233 38 EpdIf::~EpdIf()
GerritPathuis 1:d27a7e06c233 39 {
GerritPathuis 0:665e04c85d8d 40 };
GerritPathuis 0:665e04c85d8d 41
GerritPathuis 0:665e04c85d8d 42
GerritPathuis 1:d27a7e06c233 43 void EpdIf::DigitalWrite(int pin, int value)
GerritPathuis 1:d27a7e06c233 44 {
GerritPathuis 1:d27a7e06c233 45 using namespace std;
GerritPathuis 1:d27a7e06c233 46 switch(pin) {
GerritPathuis 1:d27a7e06c233 47 case 0:
GerritPathuis 1:d27a7e06c233 48 epd::reset_pin.write(value);
GerritPathuis 1:d27a7e06c233 49 break;
GerritPathuis 1:d27a7e06c233 50 case 1:
GerritPathuis 1:d27a7e06c233 51 dc_pin.write(value);
GerritPathuis 1:d27a7e06c233 52 break;
GerritPathuis 1:d27a7e06c233 53 case 2:
GerritPathuis 1:d27a7e06c233 54 cs_pin.write(value);
GerritPathuis 1:d27a7e06c233 55 break;
GerritPathuis 1:d27a7e06c233 56 }
GerritPathuis 0:665e04c85d8d 57 }
GerritPathuis 0:665e04c85d8d 58
GerritPathuis 1:d27a7e06c233 59 int EpdIf::DigitalRead(int pin)
GerritPathuis 1:d27a7e06c233 60 {
GerritPathuis 1:d27a7e06c233 61 return busy_pin.read;
GerritPathuis 1:d27a7e06c233 62 //return pins_in[pin].read;
GerritPathuis 1:d27a7e06c233 63 }
GerritPathuis 1:d27a7e06c233 64
GerritPathuis 1:d27a7e06c233 65 void EpdIf::DelayMs(unsigned int delaytime)
GerritPathuis 1:d27a7e06c233 66 {
GerritPathuis 1:d27a7e06c233 67 wait_ms(delaytime);
GerritPathuis 0:665e04c85d8d 68 }
GerritPathuis 0:665e04c85d8d 69
GerritPathuis 1:d27a7e06c233 70 void EpdIf::SpiTransfer(unsigned char data)
GerritPathuis 1:d27a7e06c233 71 {
GerritPathuis 1:d27a7e06c233 72 //digitalWrite(CS_PIN, LOW);
GerritPathuis 1:d27a7e06c233 73 cs_pin.write(LOW);
GerritPathuis 1:d27a7e06c233 74 //SPI.transfer(data);
GerritPathuis 1:d27a7e06c233 75 epaper.write(data);
GerritPathuis 1:d27a7e06c233 76 //digitalWrite(CS_PIN, HIGH);
GerritPathuis 1:d27a7e06c233 77 cs_pin.write(HIGH);
GerritPathuis 0:665e04c85d8d 78 }
GerritPathuis 0:665e04c85d8d 79
GerritPathuis 1:d27a7e06c233 80 int EpdIf::IfInit(void)
GerritPathuis 1:d27a7e06c233 81 {
GerritPathuis 1:d27a7e06c233 82 //pinMode(CS_PIN, OUTPUT);
GerritPathuis 1:d27a7e06c233 83 //pinMode(RST_PIN, OUTPUT);
GerritPathuis 1:d27a7e06c233 84 //pinMode(DC_PIN, OUTPUT);
GerritPathuis 1:d27a7e06c233 85 //pinMode(BUSY_PIN, INPUT);
GerritPathuis 1:d27a7e06c233 86 epaper.frequency(2000000);
GerritPathuis 1:d27a7e06c233 87 //SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
GerritPathuis 1:d27a7e06c233 88 //SPI.begin();
GerritPathuis 0:665e04c85d8d 89 return 0;
GerritPathuis 0:665e04c85d8d 90 }
GerritPathuis 0:665e04c85d8d 91
GerritPathuis 0:665e04c85d8d 92