Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: TextLCD mbed MMA8451Q TSI
MyLCD.cpp@11:97e964c9eeb2, 2015-10-18 (annotated)
- Committer:
- mfurlanetto
- Date:
- Sun Oct 18 21:44:06 2015 +0000
- Branch:
- mono
- Revision:
- 11:97e964c9eeb2
- Child:
- 12:47ba147bcbb7
Aggiunto un buffer alla classe TextLCD, in modo da ridurre lo sfarfallio;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| mfurlanetto | 11:97e964c9eeb2 | 1 | #include "mbed.h" |
| mfurlanetto | 11:97e964c9eeb2 | 2 | #include "TextLCD.h" |
| mfurlanetto | 11:97e964c9eeb2 | 3 | #include <string> |
| mfurlanetto | 11:97e964c9eeb2 | 4 | #ifndef MYLCD |
| mfurlanetto | 11:97e964c9eeb2 | 5 | #define MYLCD |
| mfurlanetto | 11:97e964c9eeb2 | 6 | class MyLCD |
| mfurlanetto | 11:97e964c9eeb2 | 7 | { |
| mfurlanetto | 11:97e964c9eeb2 | 8 | public: |
| mfurlanetto | 11:97e964c9eeb2 | 9 | MyLCD(int refreshRate, PinName rs, PinName e, PinName d4, PinName d5, PinName d6, PinName d7): lcd(rs, e, d4, d5, d6, d7) { |
| mfurlanetto | 11:97e964c9eeb2 | 10 | lcd.printf("%d Hz, %.3f s", refreshRate, 1.0/refreshRate); |
| mfurlanetto | 11:97e964c9eeb2 | 11 | wait(3); |
| mfurlanetto | 11:97e964c9eeb2 | 12 | i=0; |
| mfurlanetto | 11:97e964c9eeb2 | 13 | if (refreshRate>0) |
| mfurlanetto | 11:97e964c9eeb2 | 14 | t.attach(this, &MyLCD::update, 1.0/refreshRate); |
| mfurlanetto | 11:97e964c9eeb2 | 15 | else |
| mfurlanetto | 11:97e964c9eeb2 | 16 | t.attach(this, &MyLCD::update, 1.0/20); |
| mfurlanetto | 11:97e964c9eeb2 | 17 | } |
| mfurlanetto | 11:97e964c9eeb2 | 18 | |
| mfurlanetto | 11:97e964c9eeb2 | 19 | void printf(string text) { |
| mfurlanetto | 11:97e964c9eeb2 | 20 | strcpy (buffer,text.c_str()); |
| mfurlanetto | 11:97e964c9eeb2 | 21 | } |
| mfurlanetto | 11:97e964c9eeb2 | 22 | void printf(string text, float number) { |
| mfurlanetto | 11:97e964c9eeb2 | 23 | const char *tmp2 = text.append(": %.1f").c_str(); |
| mfurlanetto | 11:97e964c9eeb2 | 24 | sprintf(buffer, tmp2, number); |
| mfurlanetto | 11:97e964c9eeb2 | 25 | } |
| mfurlanetto | 11:97e964c9eeb2 | 26 | |
| mfurlanetto | 11:97e964c9eeb2 | 27 | private: |
| mfurlanetto | 11:97e964c9eeb2 | 28 | TextLCD lcd; |
| mfurlanetto | 11:97e964c9eeb2 | 29 | int i; |
| mfurlanetto | 11:97e964c9eeb2 | 30 | Ticker t; |
| mfurlanetto | 11:97e964c9eeb2 | 31 | char buffer[33], bufferOld [33]; |
| mfurlanetto | 11:97e964c9eeb2 | 32 | |
| mfurlanetto | 11:97e964c9eeb2 | 33 | void update() { |
| mfurlanetto | 11:97e964c9eeb2 | 34 | if(!strcmp(bufferOld,buffer)==0) { |
| mfurlanetto | 11:97e964c9eeb2 | 35 | lcd.cls(); |
| mfurlanetto | 11:97e964c9eeb2 | 36 | lcd.printf("%s", buffer); |
| mfurlanetto | 11:97e964c9eeb2 | 37 | strcpy(bufferOld, buffer); |
| mfurlanetto | 11:97e964c9eeb2 | 38 | } |
| mfurlanetto | 11:97e964c9eeb2 | 39 | } |
| mfurlanetto | 11:97e964c9eeb2 | 40 | }; |
| mfurlanetto | 11:97e964c9eeb2 | 41 | |
| mfurlanetto | 11:97e964c9eeb2 | 42 | #endif |
