Fork of https://os.mbed.com/users/sebastiken/code/Adafruit_RA8875/ ; Adapted for use with K64F and in the process of adding more functions.

Dependencies:   mbed

Committer:
el16jh
Date:
Thu Mar 14 12:00:15 2019 +0000
Revision:
3:4a3e169866a2
Parent:
2:040a687cea93
First publish of working Adafruit 7 TFT - RA8875 program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sebastiken 0:66c1aa3d198e 1 #include "RA8875.h"
sebastiken 0:66c1aa3d198e 2
el16jh 3:4a3e169866a2 3 #define MOSI PTD2
el16jh 3:4a3e169866a2 4 #define MISO PTD3
el16jh 3:4a3e169866a2 5 #define SCLK PTD1
el16jh 3:4a3e169866a2 6 #define CS PTD0
el16jh 3:4a3e169866a2 7 #define RST PTC4
el16jh 3:4a3e169866a2 8 DigitalIn INT(PTC12);
sebastiken 0:66c1aa3d198e 9
el16jh 3:4a3e169866a2 10 Adafruit_RA8875 lcd = Adafruit_RA8875(MOSI, MISO, SCLK, CS, RST);
sebastiken 0:66c1aa3d198e 11 uint16_t tx, ty;
sebastiken 0:66c1aa3d198e 12
sebastiken 0:66c1aa3d198e 13 Serial pc(USBTX, USBRX); // tx, rxSerial pc(USBTX, USBRX); // tx, rx
sebastiken 0:66c1aa3d198e 14
el16jh 3:4a3e169866a2 15 void setup()
sebastiken 0:66c1aa3d198e 16 {
el16jh 3:4a3e169866a2 17 pc.baud(9600);
el16jh 3:4a3e169866a2 18 pc.printf("RA8875 start\n");
el16jh 3:4a3e169866a2 19 }
sebastiken 0:66c1aa3d198e 20
el16jh 3:4a3e169866a2 21 int main()
el16jh 3:4a3e169866a2 22 {
el16jh 3:4a3e169866a2 23 lcd.begin(RA8875_800x480);
el16jh 3:4a3e169866a2 24 lcd.displayOn(true);
el16jh 3:4a3e169866a2 25 lcd.GPIOX(true); // Enable lcd - display enable tied to GPIOX
el16jh 3:4a3e169866a2 26 lcd.PWM1config(true, RA8875_PWM_CLK_DIV1024); // PWM output for backlight
el16jh 3:4a3e169866a2 27 lcd.PWM1out(255);
el16jh 3:4a3e169866a2 28 lcd.fillScreen(BLACK);
el16jh 3:4a3e169866a2 29 lcd.touchEnable(true);
sebastiken 0:66c1aa3d198e 30
el16jh 3:4a3e169866a2 31 /* Render some text! */
el16jh 3:4a3e169866a2 32 lcd.textEnlarge(3);
el16jh 3:4a3e169866a2 33 lcd.textWritePro(10,30,WHITE,0,"Hello, Jacob! ");
el16jh 3:4a3e169866a2 34 lcd.textEnlarge(1.2);
el16jh 3:4a3e169866a2 35 lcd.textWritePro(10,150,WHITE,0, "I am finally working!");
el16jh 3:4a3e169866a2 36 lcd.textWritePro(10, 450, GREEN, 0, "Testing 1.. 2");
el16jh 3:4a3e169866a2 37 wait(2);
el16jh 3:4a3e169866a2 38 lcd.fillScreen(BLACK);
el16jh 3:4a3e169866a2 39
el16jh 3:4a3e169866a2 40 lcd.graphicsMode();
el16jh 3:4a3e169866a2 41 lcd.rectHelper(0,0,800,480,WHITE,1);
el16jh 3:4a3e169866a2 42 lcd.rectHelper(5,5,794,474,BLACK,1);
el16jh 3:4a3e169866a2 43
el16jh 3:4a3e169866a2 44 //lcd.boxDraw(0,0,400,400,10,GREEN,YELLOW);
el16jh 3:4a3e169866a2 45 lcd.boxDraw(10,10,459,459,10,GREY,ORANGE);
el16jh 3:4a3e169866a2 46
el16jh 3:4a3e169866a2 47
el16jh 3:4a3e169866a2 48 //////// Drawing a line for a graph
sebastiken 0:66c1aa3d198e 49
sebastiken 0:66c1aa3d198e 50
el16jh 3:4a3e169866a2 51 lcd.drawPixel(50,200,WHITE);
el16jh 3:4a3e169866a2 52
el16jh 3:4a3e169866a2 53
sebastiken 0:66c1aa3d198e 54
el16jh 3:4a3e169866a2 55
el16jh 3:4a3e169866a2 56
el16jh 3:4a3e169866a2 57
el16jh 3:4a3e169866a2 58
el16jh 3:4a3e169866a2 59 /*
el16jh 3:4a3e169866a2 60 lcd.textColor(RA8875_WHITE, RA8875_RED);
el16jh 3:4a3e169866a2 61 lcd.textWrite(string);
el16jh 3:4a3e169866a2 62 lcd.textTransparent(RA8875_CYAN);
el16jh 3:4a3e169866a2 63 lcd.textWrite(string);
el16jh 3:4a3e169866a2 64 lcd.textTransparent(RA8875_GREEN);
el16jh 3:4a3e169866a2 65 lcd.textWrite(string);
el16jh 3:4a3e169866a2 66 lcd.textColor(RA8875_YELLOW, RA8875_CYAN);
el16jh 3:4a3e169866a2 67 lcd.textWrite(string);
el16jh 3:4a3e169866a2 68 //lcd.textColor(RA8875_BLACK, RA8875_MAGENTA);
el16jh 3:4a3e169866a2 69 lcd.textWrite(string);
el16jh 3:4a3e169866a2 70 */
el16jh 3:4a3e169866a2 71
el16jh 3:4a3e169866a2 72
el16jh 3:4a3e169866a2 73 //lcd.drawCircle(100, 100, 50, RA8875_RED);
el16jh 3:4a3e169866a2 74 //lcd.fillCircle(100, 100, 50, RA8875_RED);
sebastiken 0:66c1aa3d198e 75
el16jh 3:4a3e169866a2 76 //lcd.fillCircle(200, 200, 50, RA8875_RED);
el16jh 3:4a3e169866a2 77
el16jh 3:4a3e169866a2 78
el16jh 3:4a3e169866a2 79 float xScale = 1024.0F/lcd.width();
el16jh 3:4a3e169866a2 80 float yScale = 1024.0F/lcd.height();
el16jh 3:4a3e169866a2 81 bool INT = 1;
el16jh 3:4a3e169866a2 82
el16jh 3:4a3e169866a2 83 /* Wait around for touch events */
el16jh 3:4a3e169866a2 84 while(1) {
el16jh 3:4a3e169866a2 85 if (INT == !1);
el16jh 3:4a3e169866a2 86 {
el16jh 3:4a3e169866a2 87 if (lcd.touched()) {
el16jh 3:4a3e169866a2 88 //Serial.print("Touch: ");
el16jh 3:4a3e169866a2 89 lcd.touchRead(&tx, &ty);
el16jh 3:4a3e169866a2 90 //Serial.print(tx); Serial.print(", "); Serial.println(ty);
el16jh 3:4a3e169866a2 91 /* Draw a circle */
el16jh 3:4a3e169866a2 92 lcd.fillCircle((uint16_t)(tx/xScale), (uint16_t)(ty/yScale), 1, WHITE);
el16jh 3:4a3e169866a2 93 }
el16jh 3:4a3e169866a2 94 }
el16jh 3:4a3e169866a2 95 }
sebastiken 0:66c1aa3d198e 96 }