Base library for various projects.
Base library for various projects.
Functions.cpp@0:a2d01ba1a81b, 2013-08-01 (annotated)
- Committer:
- Searle95
- Date:
- Thu Aug 01 09:05:54 2013 +0000
- Revision:
- 0:a2d01ba1a81b
- Child:
- 1:a5f21c409f51
Modified for use in this project.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Searle95 | 0:a2d01ba1a81b | 1 | #include "Functions.h" |
Searle95 | 0:a2d01ba1a81b | 2 | #include "screens.h" |
Searle95 | 0:a2d01ba1a81b | 3 | #include "variables.h" |
Searle95 | 0:a2d01ba1a81b | 4 | |
Searle95 | 0:a2d01ba1a81b | 5 | PwmOut led1(LED1); |
Searle95 | 0:a2d01ba1a81b | 6 | PwmOut led2(LED2); |
Searle95 | 0:a2d01ba1a81b | 7 | PwmOut led3(LED3); |
Searle95 | 0:a2d01ba1a81b | 8 | PwmOut led4(LED4); |
Searle95 | 0:a2d01ba1a81b | 9 | int loading_loop; |
Searle95 | 0:a2d01ba1a81b | 10 | int loading_line; |
Searle95 | 0:a2d01ba1a81b | 11 | |
Searle95 | 0:a2d01ba1a81b | 12 | void Functions::Loading() { |
Searle95 | 0:a2d01ba1a81b | 13 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 14 | lcd.writeString(10, 2, "Please wait", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 15 | |
Searle95 | 0:a2d01ba1a81b | 16 | while(loading_loop < 82) { |
Searle95 | 0:a2d01ba1a81b | 17 | wait(0.05); |
Searle95 | 0:a2d01ba1a81b | 18 | lcd.writeString(loading_line, 2, ".", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 19 | loading_line += 1; |
Searle95 | 0:a2d01ba1a81b | 20 | if(loading_line == 82) { |
Searle95 | 0:a2d01ba1a81b | 21 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 22 | lcd.writeString(25, 2, "Ready!", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 23 | } |
Searle95 | 0:a2d01ba1a81b | 24 | loading_loop += 1; |
Searle95 | 0:a2d01ba1a81b | 25 | } |
Searle95 | 0:a2d01ba1a81b | 26 | } |
Searle95 | 0:a2d01ba1a81b | 27 | |
Searle95 | 0:a2d01ba1a81b | 28 | void Functions::Intro() { |
Searle95 | 0:a2d01ba1a81b | 29 | lcd.init(); |
Searle95 | 0:a2d01ba1a81b | 30 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 31 | lcd.writeString(19, 2, "Welcome!", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 32 | wait(1); |
Searle95 | 0:a2d01ba1a81b | 33 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 34 | lcd.writeString(24, 1, "LEDFun", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 35 | lcd.writeString(26, 2, "V1.00", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 36 | lcd.writeString(13, 3, "Dan Searle", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 37 | wait(5); |
Searle95 | 0:a2d01ba1a81b | 38 | } |
Searle95 | 0:a2d01ba1a81b | 39 | |
Searle95 | 0:a2d01ba1a81b | 40 | void Functions::Commands() { |
Searle95 | 0:a2d01ba1a81b | 41 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 42 | lcd.writeString(2, 2, "Continue = c", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 43 | lcd.writeString(2, 3, "Skip = x", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 44 | char c = pc.getc(); |
Searle95 | 0:a2d01ba1a81b | 45 | if(c == 'x') { |
Searle95 | 0:a2d01ba1a81b | 46 | Loading(); |
Searle95 | 0:a2d01ba1a81b | 47 | } |
Searle95 | 0:a2d01ba1a81b | 48 | else if(c == 'c') { |
Searle95 | 0:a2d01ba1a81b | 49 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 50 | lcd.printf(" All = q "); |
Searle95 | 0:a2d01ba1a81b | 51 | lcd.printf(" LED 1 = w & a"); |
Searle95 | 0:a2d01ba1a81b | 52 | lcd.printf(" LED 2 = e & s"); |
Searle95 | 0:a2d01ba1a81b | 53 | lcd.printf(" LED 3 = r & d"); |
Searle95 | 0:a2d01ba1a81b | 54 | lcd.printf(" LED 4 = t & f"); |
Searle95 | 0:a2d01ba1a81b | 55 | lcd.printf(" All = y "); |
Searle95 | 0:a2d01ba1a81b | 56 | wait(5); |
Searle95 | 0:a2d01ba1a81b | 57 | Loading(); |
Searle95 | 0:a2d01ba1a81b | 58 | } |
Searle95 | 0:a2d01ba1a81b | 59 | } |
Searle95 | 0:a2d01ba1a81b | 60 | |
Searle95 | 0:a2d01ba1a81b | 61 | void Functions::LEDAndRestart() { |
Searle95 | 0:a2d01ba1a81b | 62 | double all_bright = 0.0; |
Searle95 | 0:a2d01ba1a81b | 63 | double led1_bright = 0.0; |
Searle95 | 0:a2d01ba1a81b | 64 | double led2_bright = 0.0; |
Searle95 | 0:a2d01ba1a81b | 65 | double led3_bright = 0.0; |
Searle95 | 0:a2d01ba1a81b | 66 | double led4_bright = 0.0; |
Searle95 | 0:a2d01ba1a81b | 67 | |
Searle95 | 0:a2d01ba1a81b | 68 | while(1) { |
Searle95 | 0:a2d01ba1a81b | 69 | char c = pc.getc(); |
Searle95 | 0:a2d01ba1a81b | 70 | if((c == 'q') && (all_bright < 0.9)) { |
Searle95 | 0:a2d01ba1a81b | 71 | led1_bright += 1.0; |
Searle95 | 0:a2d01ba1a81b | 72 | led2_bright += 1.0; |
Searle95 | 0:a2d01ba1a81b | 73 | led3_bright += 1.0; |
Searle95 | 0:a2d01ba1a81b | 74 | led4_bright += 1.0; |
Searle95 | 0:a2d01ba1a81b | 75 | all_bright += 1.0; |
Searle95 | 0:a2d01ba1a81b | 76 | led1 = led1_bright; |
Searle95 | 0:a2d01ba1a81b | 77 | led2 = led2_bright; |
Searle95 | 0:a2d01ba1a81b | 78 | led3 = led3_bright; |
Searle95 | 0:a2d01ba1a81b | 79 | led4 = led4_bright; |
Searle95 | 0:a2d01ba1a81b | 80 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 81 | lcd.writeString(5, 2, "All LED's On!", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 82 | lcd.writeString(13, 4, "Brightness", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 83 | lcd.printf("\n\n\n\n\n\n\n\n\n%g", all_bright); |
Searle95 | 0:a2d01ba1a81b | 84 | } |
Searle95 | 0:a2d01ba1a81b | 85 | |
Searle95 | 0:a2d01ba1a81b | 86 | if((c == 'y') && (all_bright > 0.0)) { |
Searle95 | 0:a2d01ba1a81b | 87 | led1_bright -= 1.0; |
Searle95 | 0:a2d01ba1a81b | 88 | led2_bright -= 1.0; |
Searle95 | 0:a2d01ba1a81b | 89 | led3_bright -= 1.0; |
Searle95 | 0:a2d01ba1a81b | 90 | led4_bright -= 1.0; |
Searle95 | 0:a2d01ba1a81b | 91 | all_bright -= 1.0; |
Searle95 | 0:a2d01ba1a81b | 92 | led1 = led1_bright; |
Searle95 | 0:a2d01ba1a81b | 93 | led2 = led2_bright; |
Searle95 | 0:a2d01ba1a81b | 94 | led3 = led3_bright; |
Searle95 | 0:a2d01ba1a81b | 95 | led4 = led4_bright; |
Searle95 | 0:a2d01ba1a81b | 96 | if(all_bright < 0.01) { |
Searle95 | 0:a2d01ba1a81b | 97 | all_bright = 0; |
Searle95 | 0:a2d01ba1a81b | 98 | } |
Searle95 | 0:a2d01ba1a81b | 99 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 100 | lcd.writeString(2, 2, "All LED's Off!", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 101 | lcd.writeString(13, 4, "Brightness", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 102 | lcd.printf("\n\n\n\n\n\n\n\n\n%g", all_bright); |
Searle95 | 0:a2d01ba1a81b | 103 | } |
Searle95 | 0:a2d01ba1a81b | 104 | |
Searle95 | 0:a2d01ba1a81b | 105 | if((c == 'w') && (led1_bright < 0.9)) { |
Searle95 | 0:a2d01ba1a81b | 106 | led1_bright += 0.1; |
Searle95 | 0:a2d01ba1a81b | 107 | led1 = led1_bright; |
Searle95 | 0:a2d01ba1a81b | 108 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 109 | lcd.writeString(15, 2, "LED 1 Up!", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 110 | lcd.writeString(13, 4, "Brightness", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 111 | lcd.printf("\n\n\n\n\n\n\n\n\n%g", led1_bright); |
Searle95 | 0:a2d01ba1a81b | 112 | } |
Searle95 | 0:a2d01ba1a81b | 113 | |
Searle95 | 0:a2d01ba1a81b | 114 | if((c == 'a') && (led1_bright > 0.0)) { |
Searle95 | 0:a2d01ba1a81b | 115 | led1_bright -= 0.1; |
Searle95 | 0:a2d01ba1a81b | 116 | led1 = led1_bright; |
Searle95 | 0:a2d01ba1a81b | 117 | if(led1_bright < 0.01) { |
Searle95 | 0:a2d01ba1a81b | 118 | led1_bright = 0; |
Searle95 | 0:a2d01ba1a81b | 119 | } |
Searle95 | 0:a2d01ba1a81b | 120 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 121 | lcd.writeString(10, 2, "LED 1 Down!", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 122 | lcd.writeString(13, 4, "Brightness", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 123 | lcd.printf("\n\n\n\n\n\n\n\n\n%g", led1_bright); |
Searle95 | 0:a2d01ba1a81b | 124 | } |
Searle95 | 0:a2d01ba1a81b | 125 | |
Searle95 | 0:a2d01ba1a81b | 126 | if((c == 'e') && (led2_bright < 0.9)) { |
Searle95 | 0:a2d01ba1a81b | 127 | led2_bright += 0.1; |
Searle95 | 0:a2d01ba1a81b | 128 | led2 = led2_bright; |
Searle95 | 0:a2d01ba1a81b | 129 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 130 | lcd.writeString(15, 2, "LED 2 Up!", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 131 | lcd.writeString(13, 4, "Brightness", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 132 | lcd.printf("\n\n\n\n\n\n\n\n\n%g", led2_bright); |
Searle95 | 0:a2d01ba1a81b | 133 | } |
Searle95 | 0:a2d01ba1a81b | 134 | |
Searle95 | 0:a2d01ba1a81b | 135 | if((c == 's') && (led2_bright > 0.0)) { |
Searle95 | 0:a2d01ba1a81b | 136 | led2_bright -= 0.1; |
Searle95 | 0:a2d01ba1a81b | 137 | led2 = led2_bright; |
Searle95 | 0:a2d01ba1a81b | 138 | if(led2_bright < 0.01) { |
Searle95 | 0:a2d01ba1a81b | 139 | led2_bright = 0; |
Searle95 | 0:a2d01ba1a81b | 140 | } |
Searle95 | 0:a2d01ba1a81b | 141 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 142 | lcd.writeString(10, 2, "LED 2 Down!", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 143 | lcd.writeString(13, 4, "Brightness", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 144 | lcd.printf("\n\n\n\n\n\n\n\n\n%g", led2_bright); |
Searle95 | 0:a2d01ba1a81b | 145 | } |
Searle95 | 0:a2d01ba1a81b | 146 | |
Searle95 | 0:a2d01ba1a81b | 147 | if((c == 'r') && (led3_bright < 0.9)) { |
Searle95 | 0:a2d01ba1a81b | 148 | led3_bright += 0.1; |
Searle95 | 0:a2d01ba1a81b | 149 | led3 = led3_bright; |
Searle95 | 0:a2d01ba1a81b | 150 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 151 | lcd.writeString(15, 2, "LED 3 Up!", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 152 | lcd.writeString(13, 4, "Brightness", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 153 | lcd.printf("\n\n\n\n\n\n\n\n\n%g", led3_bright); |
Searle95 | 0:a2d01ba1a81b | 154 | } |
Searle95 | 0:a2d01ba1a81b | 155 | |
Searle95 | 0:a2d01ba1a81b | 156 | if((c == 'd') && (led3_bright > 0.0)) { |
Searle95 | 0:a2d01ba1a81b | 157 | led3_bright -= 0.1; |
Searle95 | 0:a2d01ba1a81b | 158 | led3 = led3_bright; |
Searle95 | 0:a2d01ba1a81b | 159 | if(led3_bright < 0.01) { |
Searle95 | 0:a2d01ba1a81b | 160 | led3_bright = 0; |
Searle95 | 0:a2d01ba1a81b | 161 | } |
Searle95 | 0:a2d01ba1a81b | 162 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 163 | lcd.writeString(10, 2, "LED 3 Down!", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 164 | lcd.writeString(13, 4, "Brightness", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 165 | lcd.printf("\n\n\n\n\n\n\n\n\n%g", led3_bright); |
Searle95 | 0:a2d01ba1a81b | 166 | } |
Searle95 | 0:a2d01ba1a81b | 167 | |
Searle95 | 0:a2d01ba1a81b | 168 | if((c == 't') && (led4_bright < 0.9)) { |
Searle95 | 0:a2d01ba1a81b | 169 | led4_bright += 0.1; |
Searle95 | 0:a2d01ba1a81b | 170 | led4 = led4_bright; |
Searle95 | 0:a2d01ba1a81b | 171 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 172 | lcd.writeString(15, 2, "LED 4 Up!", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 173 | lcd.writeString(13, 4, "Brightness", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 174 | lcd.printf("\n\n\n\n\n\n\n\n\n%g", led4_bright); |
Searle95 | 0:a2d01ba1a81b | 175 | } |
Searle95 | 0:a2d01ba1a81b | 176 | |
Searle95 | 0:a2d01ba1a81b | 177 | if((c == 'f') && (led4_bright > 0.0)) { |
Searle95 | 0:a2d01ba1a81b | 178 | led4_bright -= 0.1; |
Searle95 | 0:a2d01ba1a81b | 179 | led4 = led4_bright; |
Searle95 | 0:a2d01ba1a81b | 180 | if(led4_bright < 0.01) { |
Searle95 | 0:a2d01ba1a81b | 181 | led4_bright = 0; |
Searle95 | 0:a2d01ba1a81b | 182 | } |
Searle95 | 0:a2d01ba1a81b | 183 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 184 | lcd.writeString(10, 2, "LED 4 Down!", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 185 | lcd.writeString(13, 4, "Brightness", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 186 | lcd.printf("\n\n\n\n\n\n\n\n\n%g", led4_bright); |
Searle95 | 0:a2d01ba1a81b | 187 | } |
Searle95 | 0:a2d01ba1a81b | 188 | |
Searle95 | 0:a2d01ba1a81b | 189 | if(c == 'z') { |
Searle95 | 0:a2d01ba1a81b | 190 | lcd.cls(); |
Searle95 | 0:a2d01ba1a81b | 191 | lcd.writeString(24, 2, "System", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 192 | lcd.writeString(22, 3, "Restart", NORMAL); |
Searle95 | 0:a2d01ba1a81b | 193 | all_bright = 1; |
Searle95 | 0:a2d01ba1a81b | 194 | led1 = all_bright; |
Searle95 | 0:a2d01ba1a81b | 195 | led2 = all_bright; |
Searle95 | 0:a2d01ba1a81b | 196 | led3 = all_bright; |
Searle95 | 0:a2d01ba1a81b | 197 | led4 = all_bright; |
Searle95 | 0:a2d01ba1a81b | 198 | wait(2); |
Searle95 | 0:a2d01ba1a81b | 199 | NVIC_SystemReset(); |
Searle95 | 0:a2d01ba1a81b | 200 | } |
Searle95 | 0:a2d01ba1a81b | 201 | } |
Searle95 | 0:a2d01ba1a81b | 202 | } |