UoD_ME30001_Group_1_03 / Mbed 2 deprecated timer

Dependencies:   mbed C12832_lcd

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?

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