Andrew Bell
/
lab6_ScrollMessage
working multi line scoller message on lcd
main.cpp@0:1f7f335b262d, 2021-03-03 (annotated)
- Committer:
- andrewbw01
- Date:
- Wed Mar 03 14:24:49 2021 +0000
- Revision:
- 0:1f7f335b262d
working multi line scrolling message on LCD
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
andrewbw01 | 0:1f7f335b262d | 1 | #include "mbed.h" |
andrewbw01 | 0:1f7f335b262d | 2 | #include "C12832_lcd.h" |
andrewbw01 | 0:1f7f335b262d | 3 | |
andrewbw01 | 0:1f7f335b262d | 4 | C12832_LCD lcd; // create lcd object |
andrewbw01 | 0:1f7f335b262d | 5 | |
andrewbw01 | 0:1f7f335b262d | 6 | char welcome_str1[] ="**********"; |
andrewbw01 | 0:1f7f335b262d | 7 | char welcome_str2[] =" Welcome "; |
andrewbw01 | 0:1f7f335b262d | 8 | char welcome_str3[] ="**********"; |
andrewbw01 | 0:1f7f335b262d | 9 | |
andrewbw01 | 0:1f7f335b262d | 10 | int vert_line_hight = 9; |
andrewbw01 | 0:1f7f335b262d | 11 | |
andrewbw01 | 0:1f7f335b262d | 12 | void scroll_msg_right(void); // fuction prototypes |
andrewbw01 | 0:1f7f335b262d | 13 | void scroll_msg_left(void); |
andrewbw01 | 0:1f7f335b262d | 14 | |
andrewbw01 | 0:1f7f335b262d | 15 | |
andrewbw01 | 0:1f7f335b262d | 16 | int main() |
andrewbw01 | 0:1f7f335b262d | 17 | { |
andrewbw01 | 0:1f7f335b262d | 18 | scroll_msg_right(); |
andrewbw01 | 0:1f7f335b262d | 19 | wait(0.1); |
andrewbw01 | 0:1f7f335b262d | 20 | scroll_msg_left(); |
andrewbw01 | 0:1f7f335b262d | 21 | |
andrewbw01 | 0:1f7f335b262d | 22 | while(1) |
andrewbw01 | 0:1f7f335b262d | 23 | {} |
andrewbw01 | 0:1f7f335b262d | 24 | } |
andrewbw01 | 0:1f7f335b262d | 25 | |
andrewbw01 | 0:1f7f335b262d | 26 | |
andrewbw01 | 0:1f7f335b262d | 27 | |
andrewbw01 | 0:1f7f335b262d | 28 | // scroll message right |
andrewbw01 | 0:1f7f335b262d | 29 | void scroll_msg_right(void) |
andrewbw01 | 0:1f7f335b262d | 30 | { |
andrewbw01 | 0:1f7f335b262d | 31 | for(int i=10; i>0; i--) // scroll one character on at a time |
andrewbw01 | 0:1f7f335b262d | 32 | { |
andrewbw01 | 0:1f7f335b262d | 33 | lcd.cls(); |
andrewbw01 | 0:1f7f335b262d | 34 | lcd.locate(0,0); |
andrewbw01 | 0:1f7f335b262d | 35 | lcd.printf("%s", (welcome_str1+i)); |
andrewbw01 | 0:1f7f335b262d | 36 | |
andrewbw01 | 0:1f7f335b262d | 37 | lcd.locate(0, vert_line_hight); |
andrewbw01 | 0:1f7f335b262d | 38 | lcd.printf("%s", (welcome_str2+i)); |
andrewbw01 | 0:1f7f335b262d | 39 | |
andrewbw01 | 0:1f7f335b262d | 40 | lcd.locate(0, vert_line_hight*2); |
andrewbw01 | 0:1f7f335b262d | 41 | lcd.printf("%s", (welcome_str3+i)); |
andrewbw01 | 0:1f7f335b262d | 42 | |
andrewbw01 | 0:1f7f335b262d | 43 | wait(0.2); |
andrewbw01 | 0:1f7f335b262d | 44 | } |
andrewbw01 | 0:1f7f335b262d | 45 | |
andrewbw01 | 0:1f7f335b262d | 46 | for(int i=0; i<45; i++) // scroll message |
andrewbw01 | 0:1f7f335b262d | 47 | { |
andrewbw01 | 0:1f7f335b262d | 48 | lcd.cls(); |
andrewbw01 | 0:1f7f335b262d | 49 | lcd.locate(i,0); |
andrewbw01 | 0:1f7f335b262d | 50 | lcd.printf("%s", welcome_str1); |
andrewbw01 | 0:1f7f335b262d | 51 | |
andrewbw01 | 0:1f7f335b262d | 52 | lcd.locate(i, vert_line_hight); |
andrewbw01 | 0:1f7f335b262d | 53 | lcd.printf("%s", welcome_str2); |
andrewbw01 | 0:1f7f335b262d | 54 | |
andrewbw01 | 0:1f7f335b262d | 55 | lcd.locate(i, vert_line_hight*2); |
andrewbw01 | 0:1f7f335b262d | 56 | lcd.printf("%s", welcome_str3); |
andrewbw01 | 0:1f7f335b262d | 57 | |
andrewbw01 | 0:1f7f335b262d | 58 | wait(0.075); |
andrewbw01 | 0:1f7f335b262d | 59 | } |
andrewbw01 | 0:1f7f335b262d | 60 | } |
andrewbw01 | 0:1f7f335b262d | 61 | |
andrewbw01 | 0:1f7f335b262d | 62 | |
andrewbw01 | 0:1f7f335b262d | 63 | void scroll_msg_left(void) |
andrewbw01 | 0:1f7f335b262d | 64 | { |
andrewbw01 | 0:1f7f335b262d | 65 | for(int i=45; i>0; i--) |
andrewbw01 | 0:1f7f335b262d | 66 | { |
andrewbw01 | 0:1f7f335b262d | 67 | lcd.cls(); |
andrewbw01 | 0:1f7f335b262d | 68 | lcd.locate(i,0); |
andrewbw01 | 0:1f7f335b262d | 69 | lcd.printf("%s", welcome_str1); |
andrewbw01 | 0:1f7f335b262d | 70 | |
andrewbw01 | 0:1f7f335b262d | 71 | lcd.locate(i, vert_line_hight); |
andrewbw01 | 0:1f7f335b262d | 72 | lcd.printf("%s", welcome_str2); |
andrewbw01 | 0:1f7f335b262d | 73 | |
andrewbw01 | 0:1f7f335b262d | 74 | lcd.locate(i, vert_line_hight*2); |
andrewbw01 | 0:1f7f335b262d | 75 | lcd.printf("%s", welcome_str3); |
andrewbw01 | 0:1f7f335b262d | 76 | |
andrewbw01 | 0:1f7f335b262d | 77 | wait(0.075); |
andrewbw01 | 0:1f7f335b262d | 78 | } |
andrewbw01 | 0:1f7f335b262d | 79 | |
andrewbw01 | 0:1f7f335b262d | 80 | for(int i=0; i<11; i++) // scroll one character on at a time |
andrewbw01 | 0:1f7f335b262d | 81 | { |
andrewbw01 | 0:1f7f335b262d | 82 | lcd.cls(); |
andrewbw01 | 0:1f7f335b262d | 83 | lcd.locate(0,0); |
andrewbw01 | 0:1f7f335b262d | 84 | lcd.printf("%s", (welcome_str1+i)); |
andrewbw01 | 0:1f7f335b262d | 85 | |
andrewbw01 | 0:1f7f335b262d | 86 | lcd.locate(0, vert_line_hight); |
andrewbw01 | 0:1f7f335b262d | 87 | lcd.printf("%s", (welcome_str2+i)); |
andrewbw01 | 0:1f7f335b262d | 88 | |
andrewbw01 | 0:1f7f335b262d | 89 | lcd.locate(0, vert_line_hight*2); |
andrewbw01 | 0:1f7f335b262d | 90 | lcd.printf("%s", (welcome_str3+i)); |
andrewbw01 | 0:1f7f335b262d | 91 | |
andrewbw01 | 0:1f7f335b262d | 92 | wait(0.2); |
andrewbw01 | 0:1f7f335b262d | 93 | } |
andrewbw01 | 0:1f7f335b262d | 94 | } |