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: mbed C12832_lcd
main.cpp@3:d235ec2ba7b8, 2018-11-19 (annotated)
- Committer:
- mazmonem
- Date:
- Mon Nov 19 11:22:10 2018 +0000
- Revision:
- 3:d235ec2ba7b8
- Parent:
- 2:684c698024c4
timer code. Gives an error at line 86
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| mazmonem | 0:275c29641333 | 1 | #include "mbed.h" | 
| mazmonem | 0:275c29641333 | 2 | #include "C12832_lcd.h" | 
| mazmonem | 0:275c29641333 | 3 | |
| mazmonem | 0:275c29641333 | 4 | C12832_LCD lcd; | 
| mazmonem | 0:275c29641333 | 5 | Timeout increment; | 
| mazmonem | 3:d235ec2ba7b8 | 6 | InterruptIn down(p12); | 
| mazmonem | 3:d235ec2ba7b8 | 7 | InterruptIn left (p13); | 
| mazmonem | 3:d235ec2ba7b8 | 8 | InterruptIn centre(p14); | 
| mazmonem | 3:d235ec2ba7b8 | 9 | InterruptIn up(p15); | 
| mazmonem | 3:d235ec2ba7b8 | 10 | InterruptIn right(p16); | 
| mazmonem | 1:13aae0117bbf | 11 | |
| mazmonem | 1:13aae0117bbf | 12 | |
| mazmonem | 3:d235ec2ba7b8 | 13 | int hours = 0; | 
| mazmonem | 3:d235ec2ba7b8 | 14 | int minutes = 0; | 
| mazmonem | 3:d235ec2ba7b8 | 15 | |
| mazmonem | 3:d235ec2ba7b8 | 16 | // switching between increasing hrs and minutes | 
| mazmonem | 3:d235ec2ba7b8 | 17 | /** | 
| mazmonem | 3:d235ec2ba7b8 | 18 | Adjust minutes | 
| mazmonem | 3:d235ec2ba7b8 | 19 | */ | 
| mazmonem | 3:d235ec2ba7b8 | 20 | |
| mazmonem | 3:d235ec2ba7b8 | 21 | void adj_min() | 
| mazmonem | 3:d235ec2ba7b8 | 22 | { | 
| mazmonem | 3:d235ec2ba7b8 | 23 | if (minutes > 59) { | 
| mazmonem | 3:d235ec2ba7b8 | 24 | minutes = 0; | 
| mazmonem | 3:d235ec2ba7b8 | 25 | } | 
| mazmonem | 3:d235ec2ba7b8 | 26 | } | 
| mazmonem | 3:d235ec2ba7b8 | 27 | |
| mazmonem | 3:d235ec2ba7b8 | 28 | void adj_hrs() | 
| mazmonem | 3:d235ec2ba7b8 | 29 | { | 
| mazmonem | 3:d235ec2ba7b8 | 30 | if (hours > 23) { | 
| mazmonem | 3:d235ec2ba7b8 | 31 | hours = 0; | 
| mazmonem | 3:d235ec2ba7b8 | 32 | } | 
| mazmonem | 3:d235ec2ba7b8 | 33 | } | 
| mazmonem | 3:d235ec2ba7b8 | 34 | |
| mazmonem | 3:d235ec2ba7b8 | 35 | /** | 
| mazmonem | 3:d235ec2ba7b8 | 36 | Increment minutes | 
| mazmonem | 3:d235ec2ba7b8 | 37 | */ | 
| mazmonem | 3:d235ec2ba7b8 | 38 | void inc_min() | 
| mazmonem | 3:d235ec2ba7b8 | 39 | { | 
| mazmonem | 3:d235ec2ba7b8 | 40 | minutes++; | 
| mazmonem | 3:d235ec2ba7b8 | 41 | adj_min(); | 
| mazmonem | 3:d235ec2ba7b8 | 42 | } | 
| mazmonem | 3:d235ec2ba7b8 | 43 | void inc_hrs() | 
| mazmonem | 3:d235ec2ba7b8 | 44 | { | 
| mazmonem | 3:d235ec2ba7b8 | 45 | hours++; | 
| mazmonem | 3:d235ec2ba7b8 | 46 | adj_hrs(); | 
| mazmonem | 3:d235ec2ba7b8 | 47 | } | 
| mazmonem | 3:d235ec2ba7b8 | 48 | |
| mazmonem | 3:d235ec2ba7b8 | 49 | |
| mazmonem | 3:d235ec2ba7b8 | 50 | //function for decrementing | 
| mazmonem | 3:d235ec2ba7b8 | 51 | |
| mazmonem | 3:d235ec2ba7b8 | 52 | void dec_min() | 
| mazmonem | 3:d235ec2ba7b8 | 53 | { | 
| mazmonem | 3:d235ec2ba7b8 | 54 | minutes--; | 
| mazmonem | 3:d235ec2ba7b8 | 55 | adj_min(); | 
| mazmonem | 3:d235ec2ba7b8 | 56 | } | 
| mazmonem | 3:d235ec2ba7b8 | 57 | void dec_hrs() | 
| mazmonem | 3:d235ec2ba7b8 | 58 | { | 
| mazmonem | 3:d235ec2ba7b8 | 59 | hours--; | 
| mazmonem | 3:d235ec2ba7b8 | 60 | adj_hrs(); | 
| mazmonem | 3:d235ec2ba7b8 | 61 | } | 
| mazmonem | 3:d235ec2ba7b8 | 62 | void Down() | 
| mazmonem | 3:d235ec2ba7b8 | 63 | { | 
| mazmonem | 3:d235ec2ba7b8 | 64 | if (left) { | 
| mazmonem | 3:d235ec2ba7b8 | 65 | dec_hrs(); | 
| mazmonem | 3:d235ec2ba7b8 | 66 | } else if (right) { | 
| mazmonem | 3:d235ec2ba7b8 | 67 | dec_min(); | 
| mazmonem | 3:d235ec2ba7b8 | 68 | } | 
| mazmonem | 3:d235ec2ba7b8 | 69 | } | 
| mazmonem | 3:d235ec2ba7b8 | 70 | void Up() | 
| mazmonem | 1:13aae0117bbf | 71 | { | 
| mazmonem | 2:684c698024c4 | 72 | if (left) { | 
| mazmonem | 1:13aae0117bbf | 73 | inc_hrs(); | 
| mazmonem | 2:684c698024c4 | 74 | } else if (right) { | 
| mazmonem | 1:13aae0117bbf | 75 | inc_min(); | 
| mazmonem | 1:13aae0117bbf | 76 | } | 
| mazmonem | 1:13aae0117bbf | 77 | } | 
| mazmonem | 1:13aae0117bbf | 78 | |
| mazmonem | 3:d235ec2ba7b8 | 79 | |
| mazmonem | 3:d235ec2ba7b8 | 80 | /** | 
| mazmonem | 3:d235ec2ba7b8 | 81 | Main entry point | 
| mazmonem | 3:d235ec2ba7b8 | 82 | */ | 
| mazmonem | 3:d235ec2ba7b8 | 83 | int main() { | 
| mazmonem | 1:13aae0117bbf | 84 | |
| mazmonem | 3:d235ec2ba7b8 | 85 | while (1) { | 
| mazmonem | 3:d235ec2ba7b8 | 86 | Down.rise(&Down_rise); | 
| mazmonem | 3:d235ec2ba7b8 | 87 | Up.rise(&Up_rise); | 
| mazmonem | 3:d235ec2ba7b8 | 88 | right.rise(&right_rise); | 
| mazmonem | 3:d235ec2ba7b8 | 89 | left.rise(&left_rise); | 
| mazmonem | 3:d235ec2ba7b8 | 90 | while (true) { | 
| mazmonem | 3:d235ec2ba7b8 | 91 | increment.attach(&inc_min, 60.0); | 
| mazmonem | 3:d235ec2ba7b8 | 92 | |
| mazmonem | 3:d235ec2ba7b8 | 93 | |
| mazmonem | 3:d235ec2ba7b8 | 94 | if (up) { | 
| mazmonem | 3:d235ec2ba7b8 | 95 | Up(); | 
| mazmonem | 3:d235ec2ba7b8 | 96 | } | 
| mazmonem | 1:13aae0117bbf | 97 | |
| mazmonem | 3:d235ec2ba7b8 | 98 | if (down) { //switching between decreasing minutes and hours | 
| mazmonem | 3:d235ec2ba7b8 | 99 | Down(); | 
| mazmonem | 3:d235ec2ba7b8 | 100 | } | 
| mazmonem | 3:d235ec2ba7b8 | 101 | |
| mazmonem | 3:d235ec2ba7b8 | 102 | lcd.cls(); | 
| mazmonem | 3:d235ec2ba7b8 | 103 | lcd.locate(10, 10); | 
| mazmonem | 3:d235ec2ba7b8 | 104 | |
| mazmonem | 3:d235ec2ba7b8 | 105 | // Check if minutes are less than 10 so a 0 can be prefixed onto the display | 
| mazmonem | 3:d235ec2ba7b8 | 106 | char mins[10] = "00"; // String to display in lcd screen | 
| mazmonem | 1:13aae0117bbf | 107 | |
| mazmonem | 3:d235ec2ba7b8 | 108 | if (minutes < 10) { | 
| mazmonem | 3:d235ec2ba7b8 | 109 | strcpy(mins, "0" + minutes); | 
| mazmonem | 3:d235ec2ba7b8 | 110 | } else { | 
| mazmonem | 3:d235ec2ba7b8 | 111 | strcpy(mins, "" + minutes); | 
| mazmonem | 3:d235ec2ba7b8 | 112 | } | 
| mazmonem | 3:d235ec2ba7b8 | 113 | lcd.printf("%s", mins); | 
| mazmonem | 3:d235ec2ba7b8 | 114 | lcd.locate(20, 10); | 
| mazmonem | 3:d235ec2ba7b8 | 115 | { | 
| mazmonem | 3:d235ec2ba7b8 | 116 | lcd.printf("%d", hours); | 
| mazmonem | 3:d235ec2ba7b8 | 117 | } | 
| mazmonem | 3:d235ec2ba7b8 | 118 | } | 
| mazmonem | 3:d235ec2ba7b8 | 119 | } | 
| mazmonem | 3:d235ec2ba7b8 | 120 | } |