-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathepdif.cpp
More file actions
37 lines (31 loc) · 965 Bytes
/
Copy pathepdif.cpp
File metadata and controls
37 lines (31 loc) · 965 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "epdif.h"
#include <SPI.h>
EpdIf::EpdIf() {};
EpdIf::~EpdIf() {};
void EpdIf::DigitalWrite(int pin, int value) { digitalWrite(pin, value); }
int EpdIf::DigitalRead(int pin) { return digitalRead(pin); }
void EpdIf::DelayMs(unsigned int delaytime) { delay(delaytime); }
void EpdIf::SpiTransfer(unsigned char data) {
digitalWrite(CS_PIN, LOW);
SPI.transfer(data);
digitalWrite(CS_PIN, HIGH);
}
void EpdIf::SpiTransferBulk(unsigned char* data, int len) {
digitalWrite(CS_PIN, LOW);
SPI.transfer(data, len);
digitalWrite(CS_PIN, HIGH);
}
static bool spiReady = false;
int EpdIf::IfInit(void) {
pinMode(CS_PIN, OUTPUT);
pinMode(RST_PIN, OUTPUT);
pinMode(DC_PIN, OUTPUT);
pinMode(BUSY_PIN, INPUT);
digitalWrite(CS_PIN, HIGH);
if (!spiReady) {
SPI.begin(CLK_PIN, -1, DIN_PIN, -1);
SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
spiReady = true;
}
return 0;
}