Base library for various projects.

Dependents:   LEDFun NetTester

Base library for various projects.

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?

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