Demo of the RA8875 Keypad to enter a username and password.
Dependencies: mbed RA8875 Keypad
main.cpp
- Committer:
- WiredHome
- Date:
- 2016-02-08
- Revision:
- 0:5cf0d5f4ab84
- Child:
- 1:0fea662d1826
File content as of revision 0:5cf0d5f4ab84:
#include "mbed.h" // v112 #include "RA8875.h" #include "Keypad.h" LocalFileSystem local("local"); // Because I want <PrintScreen> Serial pc(USBTX, USBRX); // And a little feedback RA8875 lcd(p5, p6, p7, p12, NC, "tft"); // MOSI, MISO, SCK, /ChipSelect, /reset, name Keypad kp(lcd); void CalibrateTS(void) { FILE * fh; tpMatrix_t matrix; RetCode_t r; r = lcd.TouchPanelCalibrate("Calibrate the touch panel", &matrix); if (r == noerror) { fh = fopen("/local/tpcal.cfg", "wb"); if (fh) { fwrite(&matrix, sizeof(tpMatrix_t), 1, fh); fclose(fh); } else { } } else { } } void InitTS(void) { FILE * fh; tpMatrix_t matrix; fh = fopen("/local/tpcal.cfg", "rb"); if (fh) { fread(&matrix, sizeof(tpMatrix_t), 1, fh); fclose(fh); lcd.TouchPanelSetMatrix(&matrix); pc.printf("Touch Panel calibration set\r\n"); } else { CalibrateTS(); } } int main() { char name1[20], name2[20]; pc.baud(460800); // I like a snappy terminal, so crank it up! pc.printf("\r\nDev Keypad - Build " __DATE__ " " __TIME__ "\r\n"); lcd.init(); lcd.foreground(Yellow); lcd.background(Black); lcd.puts(0,0, "RA8875 Soft Fonts - Build " __DATE__ " " __TIME__ "\r\n"); InitTS(); while(1) { lcd.foreground(Yellow); lcd.background(Black); lcd.cls(); lcd.puts(0,20, "Enter username and password\r\n"); if (kp.GetString(name1, 20, "Username:")) { lcd.printf("username: %s\r\n", name1); if (kp.GetString(name2, 20, "Password:", '*')) { lcd.printf("password: %s\r\n", name2); kp.Erase(); lcd.foreground(BrightRed); lcd.background(Black); lcd.cls(); lcd.SetTextFontSize(2); lcd.SetTextCursor(0,30); lcd.printf("username: %s\r\npassword: %s\r\n", name1, name2); lcd.SetTextFontSize(); } } else { kp.Erase(); pc.printf("<esc>\r\n"); } wait(5); } }