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 | } |