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: X_NUCLEO_IKS01A1
main.cpp@7:aa81a4060c62, 2020-01-23 (annotated)
- Committer:
- gesturandrei
- Date:
- Thu Jan 23 14:59:30 2020 +0000
- Revision:
- 7:aa81a4060c62
- Parent:
- 6:c4c88077923c
23.1.2020
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gesturandrei | 7:aa81a4060c62 | 1 | /* Náum í gagnasöfn */ |
gesturandrei | 1:ae01414cd891 | 2 | #include <iostream> |
gesturandrei | 4:9b7d5033d0ef | 3 | #include <stdlib.h> |
gesturandrei | 4:9b7d5033d0ef | 4 | #include <algorithm> |
gesturandrei | 1:ae01414cd891 | 5 | using namespace std; |
ivardor | 0:1ba5cfaab64e | 6 | #include "mbed.h" |
ivardor | 0:1ba5cfaab64e | 7 | #include "x_nucleo_iks01a1.h" |
ivardor | 3:8cbc430199af | 8 | #include <ctime> |
ivardor | 3:8cbc430199af | 9 | |
gesturandrei | 7:aa81a4060c62 | 10 | //Skilgreiningar fyrir takka og led ljós |
ivardor | 3:8cbc430199af | 11 | InterruptIn button1(USER_BUTTON); |
ivardor | 3:8cbc430199af | 12 | volatile bool button1_pressed = false; // Used in the main loop |
gesturandrei | 7:aa81a4060c62 | 13 | volatile bool button1_enabled = true; // Notað fyrir debouncing |
gesturandrei | 7:aa81a4060c62 | 14 | Timeout button1_timeout; // Notað fyrir debouncing |
ivardor | 3:8cbc430199af | 15 | DigitalOut led1(LED1); |
ivardor | 0:1ba5cfaab64e | 16 | |
gesturandrei | 7:aa81a4060c62 | 17 | /* Skilgreinum X-Nucleo skjöldinn */ |
ivardor | 0:1ba5cfaab64e | 18 | static X_NUCLEO_IKS01A1 *mems_expansion_board = X_NUCLEO_IKS01A1::Instance(D14, D15); |
ivardor | 0:1ba5cfaab64e | 19 | |
gesturandrei | 7:aa81a4060c62 | 20 | /* Náum í grunneiningar skjaldarinns */ |
ivardor | 0:1ba5cfaab64e | 21 | static GyroSensor *gyroscope = mems_expansion_board->GetGyroscope(); |
ivardor | 0:1ba5cfaab64e | 22 | static MotionSensor *accelerometer = mems_expansion_board->GetAccelerometer(); |
ivardor | 0:1ba5cfaab64e | 23 | static MagneticSensor *magnetometer = mems_expansion_board->magnetometer; |
ivardor | 0:1ba5cfaab64e | 24 | static HumiditySensor *humidity_sensor = mems_expansion_board->ht_sensor; |
ivardor | 0:1ba5cfaab64e | 25 | static PressureSensor *pressure_sensor = mems_expansion_board->pt_sensor; |
ivardor | 0:1ba5cfaab64e | 26 | static TempSensor *temp_sensor1 = mems_expansion_board->ht_sensor; |
ivardor | 0:1ba5cfaab64e | 27 | static TempSensor *temp_sensor2 = mems_expansion_board->pt_sensor; |
ivardor | 0:1ba5cfaab64e | 28 | |
gesturandrei | 7:aa81a4060c62 | 29 | /* Hjálparfall til að prenta floats og doubles (tilbúið fall með athugasemdum á ensku)*/ |
ivardor | 0:1ba5cfaab64e | 30 | static char *printDouble(char* str, double v, int decimalDigits=2) |
ivardor | 0:1ba5cfaab64e | 31 | { |
ivardor | 0:1ba5cfaab64e | 32 | int i = 1; |
ivardor | 0:1ba5cfaab64e | 33 | int intPart, fractPart; |
ivardor | 0:1ba5cfaab64e | 34 | int len; |
ivardor | 0:1ba5cfaab64e | 35 | char *ptr; |
ivardor | 0:1ba5cfaab64e | 36 | |
ivardor | 0:1ba5cfaab64e | 37 | /* prepare decimal digits multiplicator */ |
ivardor | 0:1ba5cfaab64e | 38 | for (;decimalDigits!=0; i*=10, decimalDigits--); |
ivardor | 0:1ba5cfaab64e | 39 | |
ivardor | 0:1ba5cfaab64e | 40 | /* calculate integer & fractinal parts */ |
ivardor | 0:1ba5cfaab64e | 41 | intPart = (int)v; |
ivardor | 0:1ba5cfaab64e | 42 | fractPart = (int)((v-(double)(int)v)*i); |
ivardor | 0:1ba5cfaab64e | 43 | |
ivardor | 0:1ba5cfaab64e | 44 | /* fill in integer part */ |
ivardor | 0:1ba5cfaab64e | 45 | sprintf(str, "%i.", intPart); |
ivardor | 0:1ba5cfaab64e | 46 | |
ivardor | 0:1ba5cfaab64e | 47 | /* prepare fill in of fractional part */ |
ivardor | 0:1ba5cfaab64e | 48 | len = strlen(str); |
ivardor | 0:1ba5cfaab64e | 49 | ptr = &str[len]; |
ivardor | 0:1ba5cfaab64e | 50 | |
ivardor | 0:1ba5cfaab64e | 51 | /* fill in leading fractional zeros */ |
ivardor | 0:1ba5cfaab64e | 52 | for (i/=10;i>1; i/=10, ptr++) { |
ivardor | 0:1ba5cfaab64e | 53 | if(fractPart >= i) break; |
ivardor | 0:1ba5cfaab64e | 54 | *ptr = '0'; |
ivardor | 0:1ba5cfaab64e | 55 | } |
ivardor | 0:1ba5cfaab64e | 56 | |
ivardor | 0:1ba5cfaab64e | 57 | /* fill in (rest of) fractional part */ |
ivardor | 0:1ba5cfaab64e | 58 | sprintf(ptr, "%i", fractPart); |
ivardor | 0:1ba5cfaab64e | 59 | |
ivardor | 0:1ba5cfaab64e | 60 | return str; |
ivardor | 0:1ba5cfaab64e | 61 | } |
ivardor | 0:1ba5cfaab64e | 62 | |
gesturandrei | 7:aa81a4060c62 | 63 | // Fall sem virkjar takkann þegar bouncing er búið |
ivardor | 3:8cbc430199af | 64 | void button1_enabled_cb(void) |
ivardor | 3:8cbc430199af | 65 | { |
ivardor | 3:8cbc430199af | 66 | button1_enabled = true; |
ivardor | 3:8cbc430199af | 67 | } |
ivardor | 3:8cbc430199af | 68 | |
gesturandrei | 7:aa81a4060c62 | 69 | // ISR meðhöndlun þegar ýtt er á takkann |
ivardor | 3:8cbc430199af | 70 | void button1_onpressed_cb(void) |
ivardor | 3:8cbc430199af | 71 | { |
gesturandrei | 7:aa81a4060c62 | 72 | if (button1_enabled) { // Slökt á meðan að takki er bouncing |
ivardor | 3:8cbc430199af | 73 | button1_enabled = false; |
gesturandrei | 7:aa81a4060c62 | 74 | button1_pressed = true; |
gesturandrei | 7:aa81a4060c62 | 75 | button1_timeout.attach(callback(button1_enabled_cb), 0.3); // Debounce tími 300 ms |
ivardor | 3:8cbc430199af | 76 | } |
ivardor | 3:8cbc430199af | 77 | } |
ivardor | 3:8cbc430199af | 78 | |
gesturandrei | 7:aa81a4060c62 | 79 | /* Tilfelli 1, fall sem prentar út hitastig, rakastig og loftþrýsting í umhverfi brettisins */ |
ivardor | 2:ff2d1e351302 | 80 | void tilfelli1() { |
ivardor | 2:ff2d1e351302 | 81 | printf("\r\n"); |
ivardor | 3:8cbc430199af | 82 | printf("Tilfelli 1 valið: \r\n"); |
gesturandrei | 7:aa81a4060c62 | 83 | |
ivardor | 3:8cbc430199af | 84 | float value1, value2; |
ivardor | 3:8cbc430199af | 85 | char buffer1[32], buffer2[32]; |
gesturandrei | 7:aa81a4060c62 | 86 | |
gesturandrei | 7:aa81a4060c62 | 87 | /* Lesum hitastig og rakastig og prentum út */ |
ivardor | 3:8cbc430199af | 88 | temp_sensor1->get_temperature(&value1); |
ivardor | 3:8cbc430199af | 89 | humidity_sensor->get_humidity(&value2); |
gesturandrei | 7:aa81a4060c62 | 90 | printf(" Hitastig: %7s°C\n Rakastig: %s%%\r\n", printDouble(buffer1, value1), printDouble(buffer2, value2)); |
gesturandrei | 7:aa81a4060c62 | 91 | |
gesturandrei | 7:aa81a4060c62 | 92 | /* Lesum loftþrýsting og prentum út */ |
gesturandrei | 7:aa81a4060c62 | 93 | pressure_sensor->get_pressure(&value2); |
gesturandrei | 7:aa81a4060c62 | 94 | printf(" Loftþrýstingur: %s mbar\r\n", printDouble(buffer2, value2)); |
gesturandrei | 7:aa81a4060c62 | 95 | |
ivardor | 3:8cbc430199af | 96 | printf("\n"); |
ivardor | 2:ff2d1e351302 | 97 | } |
ivardor | 2:ff2d1e351302 | 98 | |
gesturandrei | 7:aa81a4060c62 | 99 | /* Tilfelli 2, fall sem prentar út segulstefnu, hröðun og hornhröðun brettisins í þrívíðum hnitum */ |
ivardor | 2:ff2d1e351302 | 100 | void tilfelli2() { |
ivardor | 2:ff2d1e351302 | 101 | printf("\r\n"); |
ivardor | 3:8cbc430199af | 102 | printf("Tilfelli 2 valið: \r\n"); |
gesturandrei | 7:aa81a4060c62 | 103 | |
ivardor | 3:8cbc430199af | 104 | char buffer1[32], buffer2[32]; |
ivardor | 3:8cbc430199af | 105 | int32_t axes[3]; |
gesturandrei | 7:aa81a4060c62 | 106 | |
gesturandrei | 7:aa81a4060c62 | 107 | /* Lesum segulstefnur og prentum út */ |
ivardor | 3:8cbc430199af | 108 | magnetometer->get_m_axes(axes); |
ivardor | 3:8cbc430199af | 109 | printf(" Segulstefnur: %7ld, %7ld, %7ld\r\n", axes[0], axes[1], axes[2]); |
gesturandrei | 7:aa81a4060c62 | 110 | |
gesturandrei | 7:aa81a4060c62 | 111 | /* Lesum hröðunarmerki og prentum út */ |
ivardor | 3:8cbc430199af | 112 | accelerometer->get_x_axes(axes); |
gesturandrei | 4:9b7d5033d0ef | 113 | printf(" Hröðun: %7ld %7ld, %7ld\r\n", axes[0], axes[1], axes[2]); |
gesturandrei | 7:aa81a4060c62 | 114 | |
gesturandrei | 7:aa81a4060c62 | 115 | /* Lesum hornhröðunarmerki og prentum út */ |
ivardor | 3:8cbc430199af | 116 | gyroscope->get_g_axes(axes); |
gesturandrei | 4:9b7d5033d0ef | 117 | printf(" Hornhröðun: %7ld, %7ld, %7ld\r\n", axes[0], axes[1], axes[2]); |
gesturandrei | 7:aa81a4060c62 | 118 | |
ivardor | 3:8cbc430199af | 119 | printf("\n"); |
ivardor | 2:ff2d1e351302 | 120 | } |
ivardor | 2:ff2d1e351302 | 121 | |
gesturandrei | 7:aa81a4060c62 | 122 | /* Tilfelli 3, fall sem samsvarar takkavalmynd */ |
ivardor | 3:8cbc430199af | 123 | void tilfelli3() { |
gesturandrei | 4:9b7d5033d0ef | 124 | printf("\r\n"); |
gesturandrei | 4:9b7d5033d0ef | 125 | printf("Tilfelli 3 valið: \r\n"); |
gesturandrei | 6:c4c88077923c | 126 | printf("Ýttu 1 sinni á takkann til að fá stöðu brettisins einu sinni. \r\n"); |
gesturandrei | 6:c4c88077923c | 127 | printf("Ýttu 2 sinnum á takkann til að athuga hvort brettið sé upprétt einu sinni. \r\n"); |
gesturandrei | 6:c4c88077923c | 128 | printf("Ýttu 3 sinnum á takkann til að fá stöðu brettisins í rauntíma. \r\n"); |
gesturandrei | 7:aa81a4060c62 | 129 | printf("Ýttu 4 sinnum á takkann til að fara til baka í aðalvalmynd. \r\n"); |
gesturandrei | 7:aa81a4060c62 | 130 | |
gesturandrei | 7:aa81a4060c62 | 131 | button1.fall(callback(button1_onpressed_cb)); // Viðhengja ISR til að meðhöndla þegar ýtt er á takka |
ivardor | 3:8cbc430199af | 132 | |
gesturandrei | 7:aa81a4060c62 | 133 | int idx = 0; // Teljari fyrir hversu oft ýtt er á takka |
gesturandrei | 7:aa81a4060c62 | 134 | |
gesturandrei | 7:aa81a4060c62 | 135 | /* Lykkja fyrir takkavalmynd */ |
gesturandrei | 6:c4c88077923c | 136 | while(1) { |
gesturandrei | 7:aa81a4060c62 | 137 | idx = 0; // Endurræsum teljara |
gesturandrei | 7:aa81a4060c62 | 138 | if (button1_pressed) { |
ivardor | 3:8cbc430199af | 139 | button1_pressed = false; |
ivardor | 3:8cbc430199af | 140 | clock_t time = clock(); |
ivardor | 3:8cbc430199af | 141 | idx++; |
gesturandrei | 7:aa81a4060c62 | 142 | /* Lykkja sem gefur notanda 3 sek til að ýta á takkan eins oft og notandi vill */ |
gesturandrei | 4:9b7d5033d0ef | 143 | while ((clock() - time) / CLOCKS_PER_SEC < 3) { |
ivardor | 3:8cbc430199af | 144 | if (button1_pressed) { |
ivardor | 3:8cbc430199af | 145 | button1_pressed = false; |
gesturandrei | 7:aa81a4060c62 | 146 | idx++; // Hækkum teljara ef ýtt er á takka |
ivardor | 3:8cbc430199af | 147 | } |
ivardor | 3:8cbc430199af | 148 | } |
ivardor | 3:8cbc430199af | 149 | } |
ivardor | 3:8cbc430199af | 150 | |
gesturandrei | 7:aa81a4060c62 | 151 | /* Ef ýtt er á takka þá prentast út hversu of ýtt var á hann */ |
gesturandrei | 7:aa81a4060c62 | 152 | if (idx > 1) { |
gesturandrei | 6:c4c88077923c | 153 | printf("\r\n"); |
gesturandrei | 7:aa81a4060c62 | 154 | printf("Þrýst á takkann %d sinnum. \r\n", idx); |
gesturandrei | 7:aa81a4060c62 | 155 | } |
gesturandrei | 7:aa81a4060c62 | 156 | else if (idx == 1) { |
gesturandrei | 7:aa81a4060c62 | 157 | printf("\r\n"); |
gesturandrei | 7:aa81a4060c62 | 158 | printf("Þrýst á takkann %d sinni. \r\n", idx); |
gesturandrei | 6:c4c88077923c | 159 | } |
gesturandrei | 6:c4c88077923c | 160 | |
ivardor | 3:8cbc430199af | 161 | if (idx == 1) { |
gesturandrei | 7:aa81a4060c62 | 162 | /* Staða reiknuð út */ |
gesturandrei | 4:9b7d5033d0ef | 163 | char buffer1[32], buffer2[32]; |
gesturandrei | 4:9b7d5033d0ef | 164 | int32_t axes[3]; |
gesturandrei | 4:9b7d5033d0ef | 165 | accelerometer->get_x_axes(axes); |
gesturandrei | 4:9b7d5033d0ef | 166 | int max_1 = max(abs(axes[0]), abs(axes[1])); |
gesturandrei | 4:9b7d5033d0ef | 167 | max_1 = max(max_1, abs(axes[2])); |
gesturandrei | 4:9b7d5033d0ef | 168 | |
gesturandrei | 7:aa81a4060c62 | 169 | /* Niðurstaða prentuð út */ |
gesturandrei | 7:aa81a4060c62 | 170 | printf("Hlið brettisins sem snýr upp á við er: "); |
gesturandrei | 7:aa81a4060c62 | 171 | |
gesturandrei | 4:9b7d5033d0ef | 172 | if (max_1 == abs(axes[0])) { |
gesturandrei | 4:9b7d5033d0ef | 173 | if (max_1 == axes[0]) { |
gesturandrei | 7:aa81a4060c62 | 174 | printf("HÆGRI HLIÐIN. \n"); |
gesturandrei | 4:9b7d5033d0ef | 175 | } else { |
gesturandrei | 7:aa81a4060c62 | 176 | printf("VINSTRI HLIÐIN. \n"); |
gesturandrei | 4:9b7d5033d0ef | 177 | } |
gesturandrei | 4:9b7d5033d0ef | 178 | } |
gesturandrei | 4:9b7d5033d0ef | 179 | else if (max_1 == abs(axes[1])) { |
gesturandrei | 4:9b7d5033d0ef | 180 | if (max_1 == axes[1]) { |
gesturandrei | 7:aa81a4060c62 | 181 | printf("FRAM HLIÐIN. \n"); |
gesturandrei | 4:9b7d5033d0ef | 182 | } else { |
gesturandrei | 7:aa81a4060c62 | 183 | printf("BAK HLIÐIN. \n"); |
gesturandrei | 4:9b7d5033d0ef | 184 | } |
gesturandrei | 4:9b7d5033d0ef | 185 | } |
gesturandrei | 4:9b7d5033d0ef | 186 | else if (max_1 == abs(axes[2])) { |
gesturandrei | 4:9b7d5033d0ef | 187 | if (max_1 == axes[2]) { |
gesturandrei | 7:aa81a4060c62 | 188 | printf("TOPP HLIÐIN. \n"); |
gesturandrei | 4:9b7d5033d0ef | 189 | } else { |
gesturandrei | 7:aa81a4060c62 | 190 | printf("BOTN HLIÐIN. \n"); |
gesturandrei | 4:9b7d5033d0ef | 191 | } |
gesturandrei | 4:9b7d5033d0ef | 192 | } |
ivardor | 3:8cbc430199af | 193 | } |
gesturandrei | 7:aa81a4060c62 | 194 | /* Ef ýtt er 2 sinnum á takkann */ |
ivardor | 3:8cbc430199af | 195 | else if (idx == 2) { |
gesturandrei | 7:aa81a4060c62 | 196 | cout << "Ljós helst stöðugt í 2 sek ef brettið er upprétt, annars blikkar það." << endl; |
gesturandrei | 7:aa81a4060c62 | 197 | |
gesturandrei | 7:aa81a4060c62 | 198 | /* Staða reiknuð út */ |
gesturandrei | 4:9b7d5033d0ef | 199 | char buffer1[32], buffer2[32]; |
gesturandrei | 4:9b7d5033d0ef | 200 | int32_t axes[3]; |
gesturandrei | 4:9b7d5033d0ef | 201 | accelerometer->get_x_axes(axes); |
gesturandrei | 4:9b7d5033d0ef | 202 | int max_1 = max(abs(axes[0]), abs(axes[1])); |
gesturandrei | 4:9b7d5033d0ef | 203 | max_1 = max(max_1, abs(axes[2])); |
gesturandrei | 4:9b7d5033d0ef | 204 | |
gesturandrei | 7:aa81a4060c62 | 205 | /* Ef brettið er upprétt helst ljós kveikt í 2 sek en annars blikkar það í 2 sek */ |
gesturandrei | 4:9b7d5033d0ef | 206 | if (max_1 == axes[2]) { |
gesturandrei | 4:9b7d5033d0ef | 207 | clock_t time = clock(); |
gesturandrei | 4:9b7d5033d0ef | 208 | while ((clock() - time) / CLOCKS_PER_SEC < 2) { |
gesturandrei | 4:9b7d5033d0ef | 209 | led1 = true; |
gesturandrei | 4:9b7d5033d0ef | 210 | } |
gesturandrei | 4:9b7d5033d0ef | 211 | } else { |
gesturandrei | 4:9b7d5033d0ef | 212 | clock_t time = clock(); |
gesturandrei | 4:9b7d5033d0ef | 213 | while ((clock() - time) / CLOCKS_PER_SEC < 2) { |
gesturandrei | 4:9b7d5033d0ef | 214 | led1 = !led1; |
gesturandrei | 7:aa81a4060c62 | 215 | wait(0.2); |
gesturandrei | 4:9b7d5033d0ef | 216 | } |
gesturandrei | 4:9b7d5033d0ef | 217 | } |
gesturandrei | 4:9b7d5033d0ef | 218 | led1 = false; |
ivardor | 3:8cbc430199af | 219 | } |
gesturandrei | 7:aa81a4060c62 | 220 | /* Ef ýtt er 3 sinnum á takkann */ |
ivardor | 3:8cbc430199af | 221 | else if (idx == 3) { |
gesturandrei | 7:aa81a4060c62 | 222 | printf("Ljós helst stöðugt ef brettið er upprétt, annars blikkar það. \r\n"); |
gesturandrei | 7:aa81a4060c62 | 223 | printf("Ýttu 3 sinnum á takkann til að fara til baka í takkavalmynd. \r\n"); |
gesturandrei | 7:aa81a4060c62 | 224 | |
gesturandrei | 7:aa81a4060c62 | 225 | /* Lykkja til að sýna hvort brettið sé upprétt í rauntíma með led ljósinu */ |
ivardor | 5:dd52b4b8a40b | 226 | while(1){ |
gesturandrei | 7:aa81a4060c62 | 227 | idx = 0; // Teljari |
gesturandrei | 7:aa81a4060c62 | 228 | if (button1_pressed) { // Ef ýtt |
gesturandrei | 6:c4c88077923c | 229 | button1_pressed = false; |
gesturandrei | 6:c4c88077923c | 230 | clock_t time = clock(); |
gesturandrei | 7:aa81a4060c62 | 231 | idx++; // Teljari hækkaður |
gesturandrei | 7:aa81a4060c62 | 232 | /* Gefnar 3 sek til að ýta á takka */ |
gesturandrei | 6:c4c88077923c | 233 | while ((clock() - time) / CLOCKS_PER_SEC < 3) { |
gesturandrei | 6:c4c88077923c | 234 | if (button1_pressed) { |
gesturandrei | 6:c4c88077923c | 235 | button1_pressed = false; |
gesturandrei | 7:aa81a4060c62 | 236 | idx++; // Teljari hækkaður |
gesturandrei | 6:c4c88077923c | 237 | } |
gesturandrei | 6:c4c88077923c | 238 | } |
gesturandrei | 6:c4c88077923c | 239 | } |
gesturandrei | 7:aa81a4060c62 | 240 | |
gesturandrei | 7:aa81a4060c62 | 241 | /* Ef ýtt er þrisvar sinnum á takkan er farið aftur í takkavalmynd */ |
gesturandrei | 6:c4c88077923c | 242 | if (idx == 3) { |
gesturandrei | 7:aa81a4060c62 | 243 | led1 = 0; // Slökkt á led ljósinu |
gesturandrei | 6:c4c88077923c | 244 | break; |
gesturandrei | 6:c4c88077923c | 245 | } |
gesturandrei | 6:c4c88077923c | 246 | |
gesturandrei | 7:aa81a4060c62 | 247 | /* Staða reiknuð út */ |
ivardor | 5:dd52b4b8a40b | 248 | char buffer1[32], buffer2[32]; |
ivardor | 5:dd52b4b8a40b | 249 | int32_t axes[3]; |
ivardor | 5:dd52b4b8a40b | 250 | accelerometer->get_x_axes(axes); |
ivardor | 5:dd52b4b8a40b | 251 | int max_1 = max(abs(axes[0]), abs(axes[1])); |
ivardor | 5:dd52b4b8a40b | 252 | max_1 = max(max_1, abs(axes[2])); |
gesturandrei | 7:aa81a4060c62 | 253 | |
gesturandrei | 7:aa81a4060c62 | 254 | /* Ef brettið er upprétt helst ljós kveikt en annars blikkar það */ |
gesturandrei | 6:c4c88077923c | 255 | if (max_1 == axes[2]) { |
gesturandrei | 6:c4c88077923c | 256 | led1 = 1; |
gesturandrei | 6:c4c88077923c | 257 | } else { |
gesturandrei | 6:c4c88077923c | 258 | led1 = !led1; |
gesturandrei | 6:c4c88077923c | 259 | wait(0.2); |
ivardor | 5:dd52b4b8a40b | 260 | } |
ivardor | 5:dd52b4b8a40b | 261 | } |
ivardor | 3:8cbc430199af | 262 | } |
gesturandrei | 7:aa81a4060c62 | 263 | |
gesturandrei | 7:aa81a4060c62 | 264 | /* Fara til baka í aðalvalmyn ef ýtt er á takkann fjórum sinnum */ |
gesturandrei | 7:aa81a4060c62 | 265 | else if (idx == 4) { |
gesturandrei | 7:aa81a4060c62 | 266 | printf("Farið til baka í aðalvalmynd. \r\n"); |
gesturandrei | 7:aa81a4060c62 | 267 | printf("\r\n"); |
ivardor | 3:8cbc430199af | 268 | break; |
ivardor | 3:8cbc430199af | 269 | } |
gesturandrei | 7:aa81a4060c62 | 270 | |
gesturandrei | 7:aa81a4060c62 | 271 | /* Prenta valmöguleika aftur ef á við */ |
gesturandrei | 7:aa81a4060c62 | 272 | if (idx > 0 and idx < 4) { |
gesturandrei | 7:aa81a4060c62 | 273 | printf("\r\n"); |
gesturandrei | 7:aa81a4060c62 | 274 | printf("Ýttu 1 sinni á takkann til að fá stöðu brettisins einu sinni. \r\n"); |
gesturandrei | 7:aa81a4060c62 | 275 | printf("Ýttu 2 sinnum á takkann til að athuga hvort brettið sé upprétt einu sinni. \r\n"); |
gesturandrei | 7:aa81a4060c62 | 276 | printf("Ýttu 3 sinnum á takkann til að fá stöðu brettisins í rauntíma. \r\n"); |
gesturandrei | 7:aa81a4060c62 | 277 | printf("Ýttu 4 sinnum á takkann til að fara til baka í aðalvalmynd. \r\n"); |
gesturandrei | 7:aa81a4060c62 | 278 | } |
gesturandrei | 7:aa81a4060c62 | 279 | else if (idx > 0) { |
gesturandrei | 7:aa81a4060c62 | 280 | printf("Ekkert gerist. \r\n"); |
gesturandrei | 7:aa81a4060c62 | 281 | } |
ivardor | 3:8cbc430199af | 282 | } |
ivardor | 3:8cbc430199af | 283 | } |
ivardor | 3:8cbc430199af | 284 | |
gesturandrei | 7:aa81a4060c62 | 285 | /* Einfalt main-fall sem samsvarar aðalvalmynd */ |
gesturandrei | 7:aa81a4060c62 | 286 | int main() { |
ivardor | 0:1ba5cfaab64e | 287 | while(1) { |
gesturandrei | 1:ae01414cd891 | 288 | int userInput; |
ivardor | 5:dd52b4b8a40b | 289 | cout << "Veldu tilfelli 1-3: " << endl; |
gesturandrei | 7:aa81a4060c62 | 290 | cout << "Veldu 1 til að fá hitastig, rakastig og loftþrýsting." << endl; |
gesturandrei | 7:aa81a4060c62 | 291 | cout << "Veldu 2 til að fá segulstefnu, hröðun og hornhröðun brettisins í þrívíðum hnitum." << endl; |
gesturandrei | 7:aa81a4060c62 | 292 | cout << "Veldu 3 til að opna takkavalmynd." << endl; |
gesturandrei | 7:aa81a4060c62 | 293 | cin >> userInput; // Fáum tölugildi frá notanda |
ivardor | 2:ff2d1e351302 | 294 | switch(userInput) { |
ivardor | 2:ff2d1e351302 | 295 | case 1: tilfelli1(); |
ivardor | 3:8cbc430199af | 296 | break; |
ivardor | 2:ff2d1e351302 | 297 | case 2: tilfelli2(); |
ivardor | 3:8cbc430199af | 298 | break; |
ivardor | 3:8cbc430199af | 299 | case 3: tilfelli3(); |
ivardor | 3:8cbc430199af | 300 | break; |
ivardor | 2:ff2d1e351302 | 301 | default: break; |
gesturandrei | 7:aa81a4060c62 | 302 | } |
ivardor | 0:1ba5cfaab64e | 303 | } |
ivardor | 0:1ba5cfaab64e | 304 | } |
ivardor | 2:ff2d1e351302 | 305 |