You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
3.8 KiB
172 lines
3.8 KiB
/* Arduino Smart_Eink Library |
|
* Copyright (C) 2016 by NOA Labs |
|
* Author Bruce Guo (NOA Labs) |
|
* |
|
* This file is E-ink demo showing string. |
|
* |
|
* This Library is free software: you can redistribute it and/or modify |
|
* it under the terms of the GNU General Public License as published by |
|
* the Free Software Foundation, either version 3 of the License, or |
|
* (at your option) any later version. |
|
* |
|
* This Library is distributed in the hope that it will be useful, |
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
* GNU General Public License for more details. |
|
* |
|
* You should have received a copy of the GNU General Public License |
|
* along with this Library. If not, see |
|
* <http://www.gnu.org/licenses/>. |
|
*/ |
|
/* |
|
D/C ~ D5 |
|
CS ~ D6 |
|
BUSY ~ D7 |
|
BS ~ D8 |
|
MOSI ~ D11 |
|
MISO ~ D12 |
|
CLK ~ D13 |
|
|
|
*/ |
|
|
|
|
|
|
|
#include <SmartEink.h> |
|
#include <SPI.h> |
|
|
|
E_ink Eink; |
|
|
|
unsigned long wait_max; |
|
|
|
void wait(void) |
|
{ |
|
unsigned v; |
|
unsigned long w; |
|
w = millis(); |
|
do |
|
{ |
|
v = digitalRead(A0); |
|
} while( v != 0 ); |
|
w = millis() - w; |
|
Serial.print("wait: "); |
|
Serial.print(w); |
|
Serial.println(" "); |
|
} |
|
|
|
void setup() |
|
{ |
|
Serial.begin(9600); |
|
while (!Serial) { |
|
; // wait for serial port to connect. Needed for native USB port only |
|
} |
|
|
|
|
|
pinMode(8,OUTPUT); |
|
pinMode(9,OUTPUT); |
|
pinMode(10,OUTPUT); |
|
|
|
digitalWrite(8, HIGH); |
|
|
|
delay(1000); |
|
Eink.InitEink(); |
|
delay(1000); |
|
|
|
Eink.WriteComm(0x3b);//set gate line width |
|
Eink.WriteData(0x08);//60 + value*4 us --> this influences delay 4: 694/ms, 9:1062/297, 8(POR):957/266 |
|
|
|
} |
|
|
|
unsigned x = 0; |
|
void loop() |
|
{ |
|
|
|
Eink.WriteComm(0x44);//set RAM x address start/end, in page 36 |
|
Eink.WriteData(0x00);//RAM x address start at 00h; |
|
Eink.WriteData(0x11);//RAM x address end at 11h(17)->72: [because 1F(31)->128 and 12(18)->76] |
|
Eink.WriteComm(0x45);//set RAM y address start/end, in page 37 |
|
Eink.WriteData(0x00);//RAM y address start at 00h; |
|
Eink.WriteData(0xab);//RAM y address start at ABh(171)->172: [because B3(179)->180] |
|
|
|
|
|
Eink.WriteComm(0x11);//data enter mode |
|
Eink.WriteData(0x07); |
|
Eink.WriteComm(0x4E);//set RAM x address count to 0; |
|
Eink.WriteData(0x00); |
|
Eink.WriteComm(0x4F);//set RAM y address count to 0; |
|
Eink.WriteData(0); |
|
|
|
Eink.ClearScreen();// clear the screen |
|
|
|
Eink.WriteComm(0x11);//data enter mode |
|
Eink.WriteData(0x07); |
|
Eink.WriteComm(0x4E);//set RAM x address count to 0; |
|
Eink.WriteData(0x08); |
|
Eink.WriteComm(0x4F);//set RAM y address count to 0; |
|
Eink.WriteData(x*2); |
|
x ++; |
|
x = x & 0x01f; |
|
//delay(1000); |
|
|
|
|
|
Eink.WriteComm(0x24); |
|
|
|
Eink.WriteData(0x00); |
|
Eink.WriteData(0x03); |
|
Eink.WriteData(0x0f); |
|
Eink.WriteData(0x3f); |
|
Eink.WriteData(0xff); |
|
|
|
Eink.WriteData(0xff); |
|
Eink.WriteData(0xff); |
|
Eink.WriteData(0xff); |
|
Eink.WriteData(0xff); |
|
|
|
Eink.WriteData(0x03); |
|
Eink.WriteData(0x0f); |
|
Eink.WriteData(0x3f); |
|
Eink.WriteData(0xff); |
|
|
|
Eink.WriteData(0xff); |
|
Eink.WriteData(0xff); |
|
Eink.WriteData(0xff); |
|
Eink.WriteData(0xff); |
|
Eink.WriteData(0x00); |
|
|
|
Eink.WriteComm(0x22);//display updata sequence option ,in page 33 |
|
Eink.WriteData(0xC0);//enable sequence: clk -> CP -> on |
|
Eink.WriteComm(0x20); |
|
Serial.print("Clk+CP "); |
|
wait(); |
|
|
|
//delay(1000); |
|
Eink.WriteComm(0x22);//display updata sequence option ,in page 33 |
|
Eink.WriteData(0x04);//enable sequence: clk -> CP -> LUT -> initial display -> pattern display |
|
Eink.WriteComm(0x20); |
|
//delay(1000); |
|
Serial.print("To Display "); |
|
wait(); |
|
|
|
Eink.WriteComm(0x22); |
|
Eink.WriteData(0x03); |
|
Eink.WriteComm(0x20); |
|
//delay(1000); |
|
|
|
Serial.print("CP/Clock off "); |
|
wait(); |
|
|
|
//delay(1000); |
|
|
|
//Eink.ClearScreen();// clear the screen |
|
|
|
//Eink.EinkP8x16Str(14,8,"NOA-Labs.com"); |
|
//Eink.EinkP8x16Str(10,8,"smart-prototyping.com"); |
|
//Eink.EinkP8x16Str(6,8,"0123456789"); |
|
//Eink.EinkP8x16Str(2,8,"ABCDEFG abcdefg"); |
|
|
|
//Eink.RefreshScreen(); |
|
} |
|
void xloop() |
|
{ |
|
|
|
} |
|
|
|
|