Monil
Dependencies: mbed RA8875 mbed-rtos SDFileSystem Keypad
main.cpp@14:d71b1aa3c8bf, 2016-02-23 (annotated)
- Committer:
- unix_guru
- Date:
- Tue Feb 23 03:50:39 2016 +0000
- Revision:
- 14:d71b1aa3c8bf
- Parent:
- 13:3f6204d6140a
- Child:
- 15:a557a4c85e54
FRDM-K64F variant of David Smart's RA8875 KeyPad demo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
WiredHome | 0:037b95a5cc85 | 1 | |
unix_guru | 14:d71b1aa3c8bf | 2 | #include "mbed.h" |
unix_guru | 14:d71b1aa3c8bf | 3 | #include "RA8875.h" |
unix_guru | 14:d71b1aa3c8bf | 4 | #include "Keypad.h" |
unix_guru | 14:d71b1aa3c8bf | 5 | |
WiredHome | 5:bb970d40cd7d | 6 | #include "MyFont18x32.h" |
WiredHome | 5:bb970d40cd7d | 7 | #include "BPG_Arial08x08.h" |
WiredHome | 5:bb970d40cd7d | 8 | #include "BPG_Arial10x10.h" |
WiredHome | 5:bb970d40cd7d | 9 | #include "BPG_Arial20x20.h" |
WiredHome | 5:bb970d40cd7d | 10 | #include "BPG_Arial31x32.h" |
WiredHome | 5:bb970d40cd7d | 11 | #include "BPG_Arial63x63.h" |
WiredHome | 0:037b95a5cc85 | 12 | |
unix_guru | 13:3f6204d6140a | 13 | #include "SDFileSystem.h" |
unix_guru | 13:3f6204d6140a | 14 | #include "FATFileSystem.h" |
unix_guru | 13:3f6204d6140a | 15 | |
unix_guru | 13:3f6204d6140a | 16 | |
unix_guru | 13:3f6204d6140a | 17 | |
unix_guru | 13:3f6204d6140a | 18 | //LocalFileSystem local("local"); // Because I want <PrintScreen> |
unix_guru | 13:3f6204d6140a | 19 | // Localfile system is not avail on K64F, but SD card is. |
unix_guru | 13:3f6204d6140a | 20 | SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); |
unix_guru | 13:3f6204d6140a | 21 | |
WiredHome | 5:bb970d40cd7d | 22 | Serial pc(USBTX, USBRX); // And a little feedback |
WiredHome | 0:037b95a5cc85 | 23 | |
unix_guru | 14:d71b1aa3c8bf | 24 | RA8875 lcd(PTD2, PTD3, PTD1, PTD0, NC, "tft"); // MOSI, MISO, SCK, /ChipSelect, /reset, name |
unix_guru | 14:d71b1aa3c8bf | 25 | Keypad kp(lcd); // Associate Virtual keypad with the RA8875 TFT |
unix_guru | 14:d71b1aa3c8bf | 26 | |
unix_guru | 14:d71b1aa3c8bf | 27 | |
unix_guru | 14:d71b1aa3c8bf | 28 | void CalibrateTS(void) |
unix_guru | 14:d71b1aa3c8bf | 29 | { |
unix_guru | 14:d71b1aa3c8bf | 30 | FILE * fh; |
unix_guru | 14:d71b1aa3c8bf | 31 | tpMatrix_t matrix; |
unix_guru | 14:d71b1aa3c8bf | 32 | RetCode_t r; |
unix_guru | 14:d71b1aa3c8bf | 33 | |
unix_guru | 14:d71b1aa3c8bf | 34 | r = lcd.TouchPanelCalibrate("Calibrate the touch panel", &matrix); |
unix_guru | 14:d71b1aa3c8bf | 35 | if (r == noerror) { |
unix_guru | 14:d71b1aa3c8bf | 36 | fh = fopen("/sd/tpcal.cfg", "wb"); |
unix_guru | 14:d71b1aa3c8bf | 37 | if (fh) { |
unix_guru | 14:d71b1aa3c8bf | 38 | fwrite(&matrix, sizeof(tpMatrix_t), 1, fh); |
unix_guru | 14:d71b1aa3c8bf | 39 | fclose(fh); |
unix_guru | 14:d71b1aa3c8bf | 40 | } else { |
unix_guru | 14:d71b1aa3c8bf | 41 | } |
unix_guru | 14:d71b1aa3c8bf | 42 | } else { |
unix_guru | 14:d71b1aa3c8bf | 43 | } |
unix_guru | 14:d71b1aa3c8bf | 44 | } |
unix_guru | 14:d71b1aa3c8bf | 45 | |
unix_guru | 14:d71b1aa3c8bf | 46 | |
unix_guru | 14:d71b1aa3c8bf | 47 | void InitTS(void) |
unix_guru | 14:d71b1aa3c8bf | 48 | { |
unix_guru | 14:d71b1aa3c8bf | 49 | FILE * fh; |
unix_guru | 14:d71b1aa3c8bf | 50 | tpMatrix_t matrix; |
unix_guru | 14:d71b1aa3c8bf | 51 | |
unix_guru | 14:d71b1aa3c8bf | 52 | fh = fopen("/sd/tpcal.cfg", "rb"); |
unix_guru | 14:d71b1aa3c8bf | 53 | if (fh) { |
unix_guru | 14:d71b1aa3c8bf | 54 | fread(&matrix, sizeof(tpMatrix_t), 1, fh); |
unix_guru | 14:d71b1aa3c8bf | 55 | fclose(fh); |
unix_guru | 14:d71b1aa3c8bf | 56 | lcd.TouchPanelSetMatrix(&matrix); |
unix_guru | 14:d71b1aa3c8bf | 57 | pc.printf("Touch Panel calibration set\r\n"); |
unix_guru | 14:d71b1aa3c8bf | 58 | } else { |
unix_guru | 14:d71b1aa3c8bf | 59 | CalibrateTS(); |
unix_guru | 14:d71b1aa3c8bf | 60 | } |
unix_guru | 14:d71b1aa3c8bf | 61 | } |
unix_guru | 14:d71b1aa3c8bf | 62 | |
unix_guru | 14:d71b1aa3c8bf | 63 | |
WiredHome | 0:037b95a5cc85 | 64 | int main() |
WiredHome | 0:037b95a5cc85 | 65 | { |
unix_guru | 14:d71b1aa3c8bf | 66 | char name1[20], name2[20]; |
unix_guru | 14:d71b1aa3c8bf | 67 | |
unix_guru | 14:d71b1aa3c8bf | 68 | pc.baud(115200); |
unix_guru | 14:d71b1aa3c8bf | 69 | pc.printf("\r\nDev Keypad - Build " __DATE__ " " __TIME__ "\r\n"); |
unix_guru | 14:d71b1aa3c8bf | 70 | |
WiredHome | 3:ca6a1026c28e | 71 | lcd.init(); |
unix_guru | 14:d71b1aa3c8bf | 72 | lcd.foreground(Yellow); |
unix_guru | 14:d71b1aa3c8bf | 73 | lcd.background(Black); |
WiredHome | 5:bb970d40cd7d | 74 | lcd.puts(0,0, "RA8875 Soft Fonts - Build " __DATE__ " " __TIME__ "\r\n"); |
unix_guru | 14:d71b1aa3c8bf | 75 | InitTS(); |
unix_guru | 14:d71b1aa3c8bf | 76 | while(1) { |
unix_guru | 14:d71b1aa3c8bf | 77 | lcd.foreground(Yellow); |
unix_guru | 14:d71b1aa3c8bf | 78 | lcd.background(Black); |
unix_guru | 14:d71b1aa3c8bf | 79 | lcd.cls(); |
unix_guru | 14:d71b1aa3c8bf | 80 | lcd.puts(0,20, "Enter username and password\r\n"); |
unix_guru | 14:d71b1aa3c8bf | 81 | if (kp.GetString(name1, 20, "Username:")) { |
unix_guru | 14:d71b1aa3c8bf | 82 | pc.printf("PrintScreen activated ...\r\n"); |
unix_guru | 14:d71b1aa3c8bf | 83 | RetCode_t r = lcd.PrintScreen(0,0,480,272,"/sd/file2.bmp"); |
WiredHome | 5:bb970d40cd7d | 84 | pc.printf(" PrintScreen returned %d\r\n", r); |
unix_guru | 14:d71b1aa3c8bf | 85 | lcd.printf("username: %s\r\n", name1); |
unix_guru | 14:d71b1aa3c8bf | 86 | if (kp.GetString(name2, 20, "Password:", '*')) { |
unix_guru | 14:d71b1aa3c8bf | 87 | lcd.printf("password: %s\r\n", name2); |
unix_guru | 14:d71b1aa3c8bf | 88 | kp.Erase(); |
unix_guru | 14:d71b1aa3c8bf | 89 | lcd.foreground(BrightRed); |
unix_guru | 14:d71b1aa3c8bf | 90 | lcd.background(Black); |
unix_guru | 14:d71b1aa3c8bf | 91 | lcd.cls(); |
unix_guru | 14:d71b1aa3c8bf | 92 | lcd.SetTextFontSize(2); |
unix_guru | 14:d71b1aa3c8bf | 93 | lcd.SetTextCursor(0,30); |
unix_guru | 14:d71b1aa3c8bf | 94 | lcd.printf("username: %s\r\npassword: %s\r\n", name1, name2); |
unix_guru | 14:d71b1aa3c8bf | 95 | lcd.SetTextFontSize(); |
unix_guru | 14:d71b1aa3c8bf | 96 | |
unix_guru | 14:d71b1aa3c8bf | 97 | |
unix_guru | 14:d71b1aa3c8bf | 98 | } |
unix_guru | 14:d71b1aa3c8bf | 99 | } else { |
unix_guru | 14:d71b1aa3c8bf | 100 | kp.Erase(); |
unix_guru | 14:d71b1aa3c8bf | 101 | pc.printf("<esc>\r\n"); |
unix_guru | 14:d71b1aa3c8bf | 102 | } |
unix_guru | 14:d71b1aa3c8bf | 103 | wait(5); |
WiredHome | 3:ca6a1026c28e | 104 | } |
WiredHome | 0:037b95a5cc85 | 105 | } |
unix_guru | 14:d71b1aa3c8bf | 106 |