Demo of the RA8875 Keypad to enter a username and password.

Dependencies:   mbed RA8875 Keypad

Committer:
WiredHome
Date:
Mon Feb 08 02:47:49 2016 +0000
Revision:
0:5cf0d5f4ab84
Child:
1:0fea662d1826
Demo of the Keypad library using an onscreen keypad to enter a username and password.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
WiredHome 0:5cf0d5f4ab84 1 #include "mbed.h" // v112
WiredHome 0:5cf0d5f4ab84 2 #include "RA8875.h"
WiredHome 0:5cf0d5f4ab84 3 #include "Keypad.h"
WiredHome 0:5cf0d5f4ab84 4
WiredHome 0:5cf0d5f4ab84 5 LocalFileSystem local("local"); // Because I want <PrintScreen>
WiredHome 0:5cf0d5f4ab84 6 Serial pc(USBTX, USBRX); // And a little feedback
WiredHome 0:5cf0d5f4ab84 7
WiredHome 0:5cf0d5f4ab84 8 RA8875 lcd(p5, p6, p7, p12, NC, "tft"); // MOSI, MISO, SCK, /ChipSelect, /reset, name
WiredHome 0:5cf0d5f4ab84 9 Keypad kp(lcd);
WiredHome 0:5cf0d5f4ab84 10
WiredHome 0:5cf0d5f4ab84 11
WiredHome 0:5cf0d5f4ab84 12 void CalibrateTS(void)
WiredHome 0:5cf0d5f4ab84 13 {
WiredHome 0:5cf0d5f4ab84 14 FILE * fh;
WiredHome 0:5cf0d5f4ab84 15 tpMatrix_t matrix;
WiredHome 0:5cf0d5f4ab84 16 RetCode_t r;
WiredHome 0:5cf0d5f4ab84 17
WiredHome 0:5cf0d5f4ab84 18 r = lcd.TouchPanelCalibrate("Calibrate the touch panel", &matrix);
WiredHome 0:5cf0d5f4ab84 19 if (r == noerror) {
WiredHome 0:5cf0d5f4ab84 20 fh = fopen("/local/tpcal.cfg", "wb");
WiredHome 0:5cf0d5f4ab84 21 if (fh) {
WiredHome 0:5cf0d5f4ab84 22 fwrite(&matrix, sizeof(tpMatrix_t), 1, fh);
WiredHome 0:5cf0d5f4ab84 23 fclose(fh);
WiredHome 0:5cf0d5f4ab84 24 } else {
WiredHome 0:5cf0d5f4ab84 25 }
WiredHome 0:5cf0d5f4ab84 26 } else {
WiredHome 0:5cf0d5f4ab84 27 }
WiredHome 0:5cf0d5f4ab84 28 }
WiredHome 0:5cf0d5f4ab84 29
WiredHome 0:5cf0d5f4ab84 30
WiredHome 0:5cf0d5f4ab84 31 void InitTS(void)
WiredHome 0:5cf0d5f4ab84 32 {
WiredHome 0:5cf0d5f4ab84 33 FILE * fh;
WiredHome 0:5cf0d5f4ab84 34 tpMatrix_t matrix;
WiredHome 0:5cf0d5f4ab84 35
WiredHome 0:5cf0d5f4ab84 36 fh = fopen("/local/tpcal.cfg", "rb");
WiredHome 0:5cf0d5f4ab84 37 if (fh) {
WiredHome 0:5cf0d5f4ab84 38 fread(&matrix, sizeof(tpMatrix_t), 1, fh);
WiredHome 0:5cf0d5f4ab84 39 fclose(fh);
WiredHome 0:5cf0d5f4ab84 40 lcd.TouchPanelSetMatrix(&matrix);
WiredHome 0:5cf0d5f4ab84 41 pc.printf("Touch Panel calibration set\r\n");
WiredHome 0:5cf0d5f4ab84 42 } else {
WiredHome 0:5cf0d5f4ab84 43 CalibrateTS();
WiredHome 0:5cf0d5f4ab84 44 }
WiredHome 0:5cf0d5f4ab84 45 }
WiredHome 0:5cf0d5f4ab84 46
WiredHome 0:5cf0d5f4ab84 47 int main()
WiredHome 0:5cf0d5f4ab84 48 {
WiredHome 0:5cf0d5f4ab84 49 char name1[20], name2[20];
WiredHome 0:5cf0d5f4ab84 50
WiredHome 0:5cf0d5f4ab84 51 pc.baud(460800); // I like a snappy terminal, so crank it up!
WiredHome 0:5cf0d5f4ab84 52 pc.printf("\r\nDev Keypad - Build " __DATE__ " " __TIME__ "\r\n");
WiredHome 0:5cf0d5f4ab84 53
WiredHome 0:5cf0d5f4ab84 54 lcd.init();
WiredHome 0:5cf0d5f4ab84 55 lcd.foreground(Yellow);
WiredHome 0:5cf0d5f4ab84 56 lcd.background(Black);
WiredHome 0:5cf0d5f4ab84 57 lcd.puts(0,0, "RA8875 Soft Fonts - Build " __DATE__ " " __TIME__ "\r\n");
WiredHome 0:5cf0d5f4ab84 58 InitTS();
WiredHome 0:5cf0d5f4ab84 59 while(1) {
WiredHome 0:5cf0d5f4ab84 60 lcd.foreground(Yellow);
WiredHome 0:5cf0d5f4ab84 61 lcd.background(Black);
WiredHome 0:5cf0d5f4ab84 62 lcd.cls();
WiredHome 0:5cf0d5f4ab84 63 lcd.puts(0,20, "Enter username and password\r\n");
WiredHome 0:5cf0d5f4ab84 64 if (kp.GetString(name1, 20, "Username:")) {
WiredHome 0:5cf0d5f4ab84 65 lcd.printf("username: %s\r\n", name1);
WiredHome 0:5cf0d5f4ab84 66 if (kp.GetString(name2, 20, "Password:", '*')) {
WiredHome 0:5cf0d5f4ab84 67 lcd.printf("password: %s\r\n", name2);
WiredHome 0:5cf0d5f4ab84 68 kp.Erase();
WiredHome 0:5cf0d5f4ab84 69 lcd.foreground(BrightRed);
WiredHome 0:5cf0d5f4ab84 70 lcd.background(Black);
WiredHome 0:5cf0d5f4ab84 71 lcd.cls();
WiredHome 0:5cf0d5f4ab84 72 lcd.SetTextFontSize(2);
WiredHome 0:5cf0d5f4ab84 73 lcd.SetTextCursor(0,30);
WiredHome 0:5cf0d5f4ab84 74 lcd.printf("username: %s\r\npassword: %s\r\n", name1, name2);
WiredHome 0:5cf0d5f4ab84 75 lcd.SetTextFontSize();
WiredHome 0:5cf0d5f4ab84 76 }
WiredHome 0:5cf0d5f4ab84 77 } else {
WiredHome 0:5cf0d5f4ab84 78 kp.Erase();
WiredHome 0:5cf0d5f4ab84 79 pc.printf("<esc>\r\n");
WiredHome 0:5cf0d5f4ab84 80 }
WiredHome 0:5cf0d5f4ab84 81 wait(5);
WiredHome 0:5cf0d5f4ab84 82 }
WiredHome 0:5cf0d5f4ab84 83 }