Fork of https://os.mbed.com/users/sebastiken/code/Adafruit_RA8875/ ; Adapted for use with K64F and in the process of adding more functions.
main.cpp@3:4a3e169866a2, 2019-03-14 (annotated)
- 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?
User | Revision | Line number | New 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 | } |