Arash Ashrafnejad
/
EEE212_LoveBox
Love box
main.cpp@0:f7003ffbc25f, 2018-07-30 (annotated)
- Committer:
- arashash
- Date:
- Mon Jul 30 07:40:49 2018 +0000
- Revision:
- 0:f7003ffbc25f
initial commmit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
arashash | 0:f7003ffbc25f | 1 | //instantiate rtc object |
arashash | 0:f7003ffbc25f | 2 | #include "mbed.h" |
arashash | 0:f7003ffbc25f | 3 | #include "ds3231.h" |
arashash | 0:f7003ffbc25f | 4 | #include "ds3231.h" |
arashash | 0:f7003ffbc25f | 5 | |
arashash | 0:f7003ffbc25f | 6 | //instantiate rtc object |
arashash | 0:f7003ffbc25f | 7 | Serial pc(USBTX, USBRX); |
arashash | 0:f7003ffbc25f | 8 | Ds3231 rtc(PTE0, PTE1); |
arashash | 0:f7003ffbc25f | 9 | |
arashash | 0:f7003ffbc25f | 10 | |
arashash | 0:f7003ffbc25f | 11 | int epoch_ref = 900000000; |
arashash | 0:f7003ffbc25f | 12 | |
arashash | 0:f7003ffbc25f | 13 | DigitalOut segA(D12); |
arashash | 0:f7003ffbc25f | 14 | DigitalOut segB(D8); |
arashash | 0:f7003ffbc25f | 15 | DigitalOut segC(D5); |
arashash | 0:f7003ffbc25f | 16 | DigitalOut segD(D3); |
arashash | 0:f7003ffbc25f | 17 | DigitalOut segE(D2); |
arashash | 0:f7003ffbc25f | 18 | DigitalOut segF(D11); |
arashash | 0:f7003ffbc25f | 19 | DigitalOut segG(D6); |
arashash | 0:f7003ffbc25f | 20 | DigitalOut segPt(D4); |
arashash | 0:f7003ffbc25f | 21 | |
arashash | 0:f7003ffbc25f | 22 | //display pins |
arashash | 0:f7003ffbc25f | 23 | //int segA = 5; // >> 11 |
arashash | 0:f7003ffbc25f | 24 | //int segB = 13; // >> 7 |
arashash | 0:f7003ffbc25f | 25 | //int segC = 10; // >> 4 |
arashash | 0:f7003ffbc25f | 26 | //int segD = 8; // >> 2 |
arashash | 0:f7003ffbc25f | 27 | //int segE = 7; // >> 1 |
arashash | 0:f7003ffbc25f | 28 | //int segF = 4; // >> 10 |
arashash | 0:f7003ffbc25f | 29 | //int segG = 11; // >> 5 |
arashash | 0:f7003ffbc25f | 30 | //int segPt = 9; // >> 3 |
arashash | 0:f7003ffbc25f | 31 | //------------// |
arashash | 0:f7003ffbc25f | 32 | |
arashash | 0:f7003ffbc25f | 33 | //display digit |
arashash | 0:f7003ffbc25f | 34 | DigitalOut d1(D13); |
arashash | 0:f7003ffbc25f | 35 | DigitalOut d2(D10); |
arashash | 0:f7003ffbc25f | 36 | DigitalOut d3(D9); |
arashash | 0:f7003ffbc25f | 37 | DigitalOut d4(D7); |
arashash | 0:f7003ffbc25f | 38 | |
arashash | 0:f7003ffbc25f | 39 | //int d1 = 6; // >> 12 |
arashash | 0:f7003ffbc25f | 40 | //int d2 = 3; // >> 9 |
arashash | 0:f7003ffbc25f | 41 | //int d3 = 2; // >> 8 |
arashash | 0:f7003ffbc25f | 42 | //int d4 = 12; // >> 6 |
arashash | 0:f7003ffbc25f | 43 | //------------// |
arashash | 0:f7003ffbc25f | 44 | |
arashash | 0:f7003ffbc25f | 45 | int delayTime = 5000; //delayTime <Don't change it, if you don't know where is it!> |
arashash | 0:f7003ffbc25f | 46 | |
arashash | 0:f7003ffbc25f | 47 | int i=0; |
arashash | 0:f7003ffbc25f | 48 | |
arashash | 0:f7003ffbc25f | 49 | |
arashash | 0:f7003ffbc25f | 50 | |
arashash | 0:f7003ffbc25f | 51 | |
arashash | 0:f7003ffbc25f | 52 | |
arashash | 0:f7003ffbc25f | 53 | //=============================================// |
arashash | 0:f7003ffbc25f | 54 | void zero(){ |
arashash | 0:f7003ffbc25f | 55 | segA = 1; |
arashash | 0:f7003ffbc25f | 56 | segB = 1; |
arashash | 0:f7003ffbc25f | 57 | segC = 1; |
arashash | 0:f7003ffbc25f | 58 | segD = 1; |
arashash | 0:f7003ffbc25f | 59 | segE = 1; |
arashash | 0:f7003ffbc25f | 60 | segF = 1; |
arashash | 0:f7003ffbc25f | 61 | segG = 0; |
arashash | 0:f7003ffbc25f | 62 | segPt = 0; |
arashash | 0:f7003ffbc25f | 63 | } |
arashash | 0:f7003ffbc25f | 64 | //=============================================// |
arashash | 0:f7003ffbc25f | 65 | void one(){ |
arashash | 0:f7003ffbc25f | 66 | segA = 0; |
arashash | 0:f7003ffbc25f | 67 | segB = 1; |
arashash | 0:f7003ffbc25f | 68 | segC = 1; |
arashash | 0:f7003ffbc25f | 69 | segD = 0; |
arashash | 0:f7003ffbc25f | 70 | segE = 0; |
arashash | 0:f7003ffbc25f | 71 | segF = 0; |
arashash | 0:f7003ffbc25f | 72 | segG = 0; |
arashash | 0:f7003ffbc25f | 73 | segPt = 0; |
arashash | 0:f7003ffbc25f | 74 | } |
arashash | 0:f7003ffbc25f | 75 | //=============================================// |
arashash | 0:f7003ffbc25f | 76 | void two(){ |
arashash | 0:f7003ffbc25f | 77 | segA = 1; |
arashash | 0:f7003ffbc25f | 78 | segB = 1; |
arashash | 0:f7003ffbc25f | 79 | segC = 0; |
arashash | 0:f7003ffbc25f | 80 | segD = 1; |
arashash | 0:f7003ffbc25f | 81 | segE = 1; |
arashash | 0:f7003ffbc25f | 82 | segF = 0; |
arashash | 0:f7003ffbc25f | 83 | segG = 1; |
arashash | 0:f7003ffbc25f | 84 | segPt = 0; |
arashash | 0:f7003ffbc25f | 85 | } |
arashash | 0:f7003ffbc25f | 86 | //=============================================// |
arashash | 0:f7003ffbc25f | 87 | void three(){ |
arashash | 0:f7003ffbc25f | 88 | segA = 1; |
arashash | 0:f7003ffbc25f | 89 | segB = 1; |
arashash | 0:f7003ffbc25f | 90 | segC = 1; |
arashash | 0:f7003ffbc25f | 91 | segD = 1; |
arashash | 0:f7003ffbc25f | 92 | segE = 0; |
arashash | 0:f7003ffbc25f | 93 | segF = 0; |
arashash | 0:f7003ffbc25f | 94 | segG = 1; |
arashash | 0:f7003ffbc25f | 95 | segPt = 0; |
arashash | 0:f7003ffbc25f | 96 | } |
arashash | 0:f7003ffbc25f | 97 | //=============================================// |
arashash | 0:f7003ffbc25f | 98 | void four(){ |
arashash | 0:f7003ffbc25f | 99 | segA = 0; |
arashash | 0:f7003ffbc25f | 100 | segB = 1; |
arashash | 0:f7003ffbc25f | 101 | segC = 1; |
arashash | 0:f7003ffbc25f | 102 | segD = 0; |
arashash | 0:f7003ffbc25f | 103 | segE = 0; |
arashash | 0:f7003ffbc25f | 104 | segF = 1; |
arashash | 0:f7003ffbc25f | 105 | segG = 1; |
arashash | 0:f7003ffbc25f | 106 | segPt = 0; |
arashash | 0:f7003ffbc25f | 107 | } |
arashash | 0:f7003ffbc25f | 108 | //=============================================// |
arashash | 0:f7003ffbc25f | 109 | void five(){ |
arashash | 0:f7003ffbc25f | 110 | segA = 1; |
arashash | 0:f7003ffbc25f | 111 | segB = 0; |
arashash | 0:f7003ffbc25f | 112 | segC = 1; |
arashash | 0:f7003ffbc25f | 113 | segD = 1; |
arashash | 0:f7003ffbc25f | 114 | segE = 0; |
arashash | 0:f7003ffbc25f | 115 | segF = 1; |
arashash | 0:f7003ffbc25f | 116 | segG = 1; |
arashash | 0:f7003ffbc25f | 117 | segPt = 0; |
arashash | 0:f7003ffbc25f | 118 | } |
arashash | 0:f7003ffbc25f | 119 | //=============================================// |
arashash | 0:f7003ffbc25f | 120 | void six(){ |
arashash | 0:f7003ffbc25f | 121 | segA = 1; |
arashash | 0:f7003ffbc25f | 122 | segB = 0; |
arashash | 0:f7003ffbc25f | 123 | segC = 1; |
arashash | 0:f7003ffbc25f | 124 | segD = 1; |
arashash | 0:f7003ffbc25f | 125 | segE = 1; |
arashash | 0:f7003ffbc25f | 126 | segF = 1; |
arashash | 0:f7003ffbc25f | 127 | segG = 1; |
arashash | 0:f7003ffbc25f | 128 | segPt = 0; |
arashash | 0:f7003ffbc25f | 129 | } |
arashash | 0:f7003ffbc25f | 130 | //=============================================// |
arashash | 0:f7003ffbc25f | 131 | void seven(){ |
arashash | 0:f7003ffbc25f | 132 | segA = 1; |
arashash | 0:f7003ffbc25f | 133 | segB = 1; |
arashash | 0:f7003ffbc25f | 134 | segC = 1; |
arashash | 0:f7003ffbc25f | 135 | segD = 0; |
arashash | 0:f7003ffbc25f | 136 | segE = 0; |
arashash | 0:f7003ffbc25f | 137 | segF = 0; |
arashash | 0:f7003ffbc25f | 138 | segG = 0; |
arashash | 0:f7003ffbc25f | 139 | segPt = 0; |
arashash | 0:f7003ffbc25f | 140 | } |
arashash | 0:f7003ffbc25f | 141 | //=============================================// |
arashash | 0:f7003ffbc25f | 142 | void eight(){ |
arashash | 0:f7003ffbc25f | 143 | segA = 1; |
arashash | 0:f7003ffbc25f | 144 | segB = 1; |
arashash | 0:f7003ffbc25f | 145 | segC = 1; |
arashash | 0:f7003ffbc25f | 146 | segD = 1; |
arashash | 0:f7003ffbc25f | 147 | segE = 1; |
arashash | 0:f7003ffbc25f | 148 | segF = 1; |
arashash | 0:f7003ffbc25f | 149 | segG = 1; |
arashash | 0:f7003ffbc25f | 150 | segPt = 0; |
arashash | 0:f7003ffbc25f | 151 | } |
arashash | 0:f7003ffbc25f | 152 | //=============================================// |
arashash | 0:f7003ffbc25f | 153 | void nine(){ |
arashash | 0:f7003ffbc25f | 154 | segA = 1; |
arashash | 0:f7003ffbc25f | 155 | segB = 1; |
arashash | 0:f7003ffbc25f | 156 | segC = 1; |
arashash | 0:f7003ffbc25f | 157 | segD = 1; |
arashash | 0:f7003ffbc25f | 158 | segE = 0; |
arashash | 0:f7003ffbc25f | 159 | segF = 1; |
arashash | 0:f7003ffbc25f | 160 | segG = 1; |
arashash | 0:f7003ffbc25f | 161 | segPt = 0; |
arashash | 0:f7003ffbc25f | 162 | } |
arashash | 0:f7003ffbc25f | 163 | //=============================================// |
arashash | 0:f7003ffbc25f | 164 | void point(){ |
arashash | 0:f7003ffbc25f | 165 | segA = 0; |
arashash | 0:f7003ffbc25f | 166 | segB = 0; |
arashash | 0:f7003ffbc25f | 167 | segC = 0; |
arashash | 0:f7003ffbc25f | 168 | segD = 0; |
arashash | 0:f7003ffbc25f | 169 | segE = 0; |
arashash | 0:f7003ffbc25f | 170 | segF = 0; |
arashash | 0:f7003ffbc25f | 171 | segG = 0; |
arashash | 0:f7003ffbc25f | 172 | segPt = 1; |
arashash | 0:f7003ffbc25f | 173 | } |
arashash | 0:f7003ffbc25f | 174 | //=============================================// |
arashash | 0:f7003ffbc25f | 175 | void none(){ |
arashash | 0:f7003ffbc25f | 176 | segA = 0; |
arashash | 0:f7003ffbc25f | 177 | segB = 0; |
arashash | 0:f7003ffbc25f | 178 | segC = 0; |
arashash | 0:f7003ffbc25f | 179 | segD = 0; |
arashash | 0:f7003ffbc25f | 180 | segE = 0; |
arashash | 0:f7003ffbc25f | 181 | segF = 0; |
arashash | 0:f7003ffbc25f | 182 | segG = 0; |
arashash | 0:f7003ffbc25f | 183 | segPt = 0; |
arashash | 0:f7003ffbc25f | 184 | } |
arashash | 0:f7003ffbc25f | 185 | |
arashash | 0:f7003ffbc25f | 186 | |
arashash | 0:f7003ffbc25f | 187 | //=============================================// |
arashash | 0:f7003ffbc25f | 188 | //Select Wich Digit (selectD) is going to Display (writeL) |
arashash | 0:f7003ffbc25f | 189 | void disp(int d){ |
arashash | 0:f7003ffbc25f | 190 | |
arashash | 0:f7003ffbc25f | 191 | switch (d) { // choose a Number |
arashash | 0:f7003ffbc25f | 192 | case 0: zero(); |
arashash | 0:f7003ffbc25f | 193 | break; |
arashash | 0:f7003ffbc25f | 194 | case 1: one(); |
arashash | 0:f7003ffbc25f | 195 | break; |
arashash | 0:f7003ffbc25f | 196 | case 2: two(); |
arashash | 0:f7003ffbc25f | 197 | break; |
arashash | 0:f7003ffbc25f | 198 | case 3: three(); |
arashash | 0:f7003ffbc25f | 199 | break; |
arashash | 0:f7003ffbc25f | 200 | case 4: four(); |
arashash | 0:f7003ffbc25f | 201 | break; |
arashash | 0:f7003ffbc25f | 202 | case 5: five(); |
arashash | 0:f7003ffbc25f | 203 | break; |
arashash | 0:f7003ffbc25f | 204 | case 6: six(); |
arashash | 0:f7003ffbc25f | 205 | break; |
arashash | 0:f7003ffbc25f | 206 | case 7: seven(); |
arashash | 0:f7003ffbc25f | 207 | break; |
arashash | 0:f7003ffbc25f | 208 | case 8: eight(); |
arashash | 0:f7003ffbc25f | 209 | break; |
arashash | 0:f7003ffbc25f | 210 | case 9: nine(); |
arashash | 0:f7003ffbc25f | 211 | break; |
arashash | 0:f7003ffbc25f | 212 | case 10: point(); // print a Point |
arashash | 0:f7003ffbc25f | 213 | break; |
arashash | 0:f7003ffbc25f | 214 | case 11: none(); // make all them off ! |
arashash | 0:f7003ffbc25f | 215 | break; |
arashash | 0:f7003ffbc25f | 216 | } |
arashash | 0:f7003ffbc25f | 217 | } |
arashash | 0:f7003ffbc25f | 218 | |
arashash | 0:f7003ffbc25f | 219 | |
arashash | 0:f7003ffbc25f | 220 | |
arashash | 0:f7003ffbc25f | 221 | int epoch_time; |
arashash | 0:f7003ffbc25f | 222 | int epoch_diff; |
arashash | 0:f7003ffbc25f | 223 | int digit; |
arashash | 0:f7003ffbc25f | 224 | |
arashash | 0:f7003ffbc25f | 225 | int main() |
arashash | 0:f7003ffbc25f | 226 | { |
arashash | 0:f7003ffbc25f | 227 | pc.printf("Hello World!\n"); |
arashash | 0:f7003ffbc25f | 228 | epoch_time = rtc.get_epoch(); |
arashash | 0:f7003ffbc25f | 229 | printf("\nTime as seconds since January 1, 1970 = %d\n", epoch_time); |
arashash | 0:f7003ffbc25f | 230 | // for selecting the second digit |
arashash | 0:f7003ffbc25f | 231 | d1 = 1; |
arashash | 0:f7003ffbc25f | 232 | d2 = 1; |
arashash | 0:f7003ffbc25f | 233 | d3 = 0; |
arashash | 0:f7003ffbc25f | 234 | d4 = 1; |
arashash | 0:f7003ffbc25f | 235 | |
arashash | 0:f7003ffbc25f | 236 | while (true) { |
arashash | 0:f7003ffbc25f | 237 | epoch_time = rtc.get_epoch(); |
arashash | 0:f7003ffbc25f | 238 | epoch_diff = epoch_time - epoch_ref; |
arashash | 0:f7003ffbc25f | 239 | printf("Elapsed : %d\n", epoch_diff); |
arashash | 0:f7003ffbc25f | 240 | digit = epoch_diff % 10; |
arashash | 0:f7003ffbc25f | 241 | disp(digit); |
arashash | 0:f7003ffbc25f | 242 | |
arashash | 0:f7003ffbc25f | 243 | |
arashash | 0:f7003ffbc25f | 244 | wait(1); |
arashash | 0:f7003ffbc25f | 245 | } |
arashash | 0:f7003ffbc25f | 246 | } |