http://mbed.org/users/okini3939/notebook/tsutenkaku/
Dependencies: GSwifi (old) WDT mbed
Fork of GSwifi_denki-yohou by
main.cpp@2:8646918ffff2, 2012-10-17 (annotated)
- Committer:
- okini3939
- Date:
- Wed Oct 17 13:43:52 2012 +0000
- Revision:
- 2:8646918ffff2
- Parent:
- 1:beff52210994
1st build
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okini3939 | 0:d8a2cab7091c | 1 | #include "mbed.h" |
okini3939 | 0:d8a2cab7091c | 2 | #include "GSwifi.h" |
okini3939 | 0:d8a2cab7091c | 3 | #include "7seg.h" |
okini3939 | 2:8646918ffff2 | 4 | #include "WDT.h" |
okini3939 | 0:d8a2cab7091c | 5 | |
okini3939 | 2:8646918ffff2 | 6 | #define HTTP_HOST "www.jma.go.jp" |
okini3939 | 2:8646918ffff2 | 7 | #define HTTP_URI "/en/yoho/331.html" |
okini3939 | 1:beff52210994 | 8 | #define NTP_HOST "ntp1.sakura.ad.jp" |
okini3939 | 0:d8a2cab7091c | 9 | |
okini3939 | 2:8646918ffff2 | 10 | #define SECURE GSSEC_WPA2_PSK |
okini3939 | 2:8646918ffff2 | 11 | #define SSID "SSID" |
okini3939 | 2:8646918ffff2 | 12 | #define PASS "password" |
okini3939 | 2:8646918ffff2 | 13 | |
okini3939 | 0:d8a2cab7091c | 14 | #define VREF 3.3 |
okini3939 | 0:d8a2cab7091c | 15 | #define B 3435 // thermistor B |
okini3939 | 0:d8a2cab7091c | 16 | #define T0 25.0 |
okini3939 | 0:d8a2cab7091c | 17 | #define R0 10000.0 // R0 ohm |
okini3939 | 0:d8a2cab7091c | 18 | #define RU 10000.0 // pullup ohm |
okini3939 | 0:d8a2cab7091c | 19 | |
okini3939 | 0:d8a2cab7091c | 20 | #if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) |
okini3939 | 0:d8a2cab7091c | 21 | Serial pc(USBTX, USBRX); |
okini3939 | 0:d8a2cab7091c | 22 | GSwifi gs(p13, p14, p12, P0_22); // TX, RX, CTS, RTS |
okini3939 | 0:d8a2cab7091c | 23 | DigitalOut gs_reset(p9), gs_wakeup(p10); |
okini3939 | 0:d8a2cab7091c | 24 | DigitalOut led1(LED1); |
okini3939 | 0:d8a2cab7091c | 25 | PwmOut led2(LED2), led3(LED3), led4(LED4); |
okini3939 | 2:8646918ffff2 | 26 | DigitalOut bz(p13); |
okini3939 | 0:d8a2cab7091c | 27 | #elif defined(TARGET_LPC11U24) |
okini3939 | 0:d8a2cab7091c | 28 | GSwifi gs(p9, p10, p21, p22); // TX, RX, CTS, RTS |
okini3939 | 2:8646918ffff2 | 29 | DigitalOut gs_reset(P1_14), gs_wakeup(P1_3); |
okini3939 | 2:8646918ffff2 | 30 | //DigitalOut gs_reset(p15), gs_wakeup(p14); |
okini3939 | 0:d8a2cab7091c | 31 | DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4); |
okini3939 | 2:8646918ffff2 | 32 | DigitalOut bz(p13); |
okini3939 | 0:d8a2cab7091c | 33 | #endif |
okini3939 | 0:d8a2cab7091c | 34 | |
okini3939 | 2:8646918ffff2 | 35 | volatile int weather_count = 0, weather_data = 0, weather_flg = 0; |
okini3939 | 0:d8a2cab7091c | 36 | volatile int year, month, day, hour, minute; |
okini3939 | 2:8646918ffff2 | 37 | volatile int remote_flg = 0; |
okini3939 | 0:d8a2cab7091c | 38 | |
okini3939 | 0:d8a2cab7091c | 39 | AnalogIn adtemp(p20); |
okini3939 | 2:8646918ffff2 | 40 | Watchdog wdt; |
okini3939 | 2:8646918ffff2 | 41 | |
okini3939 | 2:8646918ffff2 | 42 | extern "C" void HardFault_Handler() { |
okini3939 | 2:8646918ffff2 | 43 | register unsigned int _msp __asm("msp"); |
okini3939 | 2:8646918ffff2 | 44 | printf("Hard Fault! address: %08x\n", *((unsigned int *)(_msp + 24))); |
okini3939 | 2:8646918ffff2 | 45 | while(1); |
okini3939 | 2:8646918ffff2 | 46 | } |
okini3939 | 2:8646918ffff2 | 47 | |
okini3939 | 2:8646918ffff2 | 48 | int weather_info (char *buf) { |
okini3939 | 2:8646918ffff2 | 49 | int i, w = 0; |
okini3939 | 2:8646918ffff2 | 50 | char *tmp = NULL; |
okini3939 | 2:8646918ffff2 | 51 | |
okini3939 | 2:8646918ffff2 | 52 | for (i = 0; i < strlen(buf); i ++) { |
okini3939 | 2:8646918ffff2 | 53 | if (buf[i] == ',') { |
okini3939 | 2:8646918ffff2 | 54 | buf[i] = 0; |
okini3939 | 2:8646918ffff2 | 55 | tmp = &buf[i + 1]; |
okini3939 | 2:8646918ffff2 | 56 | } else |
okini3939 | 2:8646918ffff2 | 57 | if (buf[i] == '<') { |
okini3939 | 2:8646918ffff2 | 58 | buf[i] = 0; |
okini3939 | 2:8646918ffff2 | 59 | break; |
okini3939 | 2:8646918ffff2 | 60 | } |
okini3939 | 2:8646918ffff2 | 61 | } |
okini3939 | 2:8646918ffff2 | 62 | |
okini3939 | 2:8646918ffff2 | 63 | if (tmp) { |
okini3939 | 2:8646918ffff2 | 64 | } else |
okini3939 | 2:8646918ffff2 | 65 | if (strstr(buf, "PARTLY CLOUDY")) { |
okini3939 | 2:8646918ffff2 | 66 | return 0x73; // WY |
okini3939 | 2:8646918ffff2 | 67 | } else |
okini3939 | 2:8646918ffff2 | 68 | if (strstr(buf, "MOSTLY CLOUDY")) { |
okini3939 | 2:8646918ffff2 | 69 | return 0x37; // YW |
okini3939 | 2:8646918ffff2 | 70 | } |
okini3939 | 2:8646918ffff2 | 71 | |
okini3939 | 2:8646918ffff2 | 72 | if (strstr(buf, "CLEAR")) { |
okini3939 | 2:8646918ffff2 | 73 | w = 0x70; // W |
okini3939 | 2:8646918ffff2 | 74 | } else |
okini3939 | 2:8646918ffff2 | 75 | if (strstr(buf, "CLOUDY")) { |
okini3939 | 2:8646918ffff2 | 76 | w = 0x30; // Y |
okini3939 | 2:8646918ffff2 | 77 | } else |
okini3939 | 2:8646918ffff2 | 78 | if (strstr(buf, "RAIN") || strstr(buf, "SHOWERS")) { |
okini3939 | 2:8646918ffff2 | 79 | w = 0x40; // B |
okini3939 | 2:8646918ffff2 | 80 | } else |
okini3939 | 2:8646918ffff2 | 81 | if (strstr(buf, "SNOW")) { |
okini3939 | 2:8646918ffff2 | 82 | w = 0x60; // P |
okini3939 | 2:8646918ffff2 | 83 | } |
okini3939 | 2:8646918ffff2 | 84 | |
okini3939 | 2:8646918ffff2 | 85 | if (tmp) { |
okini3939 | 2:8646918ffff2 | 86 | if (strstr(tmp, "CLEAR") || strstr(tmp, "PARTLY CLOUDY")) { |
okini3939 | 2:8646918ffff2 | 87 | w |= 0x07; // W |
okini3939 | 2:8646918ffff2 | 88 | } else |
okini3939 | 2:8646918ffff2 | 89 | if (strstr(tmp, "CLOUDY")) { |
okini3939 | 2:8646918ffff2 | 90 | w |= 0x03; // Y |
okini3939 | 2:8646918ffff2 | 91 | } else |
okini3939 | 2:8646918ffff2 | 92 | if (strstr(tmp, "RAIN") || strstr(tmp, "SHOWERS")) { |
okini3939 | 2:8646918ffff2 | 93 | w |= 0x04; // B |
okini3939 | 2:8646918ffff2 | 94 | } else |
okini3939 | 2:8646918ffff2 | 95 | if (strstr(tmp, "SNOW")) { |
okini3939 | 2:8646918ffff2 | 96 | w |= 0x06; // P |
okini3939 | 2:8646918ffff2 | 97 | } |
okini3939 | 2:8646918ffff2 | 98 | } else { |
okini3939 | 2:8646918ffff2 | 99 | w |= (w >> 4); |
okini3939 | 2:8646918ffff2 | 100 | } |
okini3939 | 2:8646918ffff2 | 101 | |
okini3939 | 2:8646918ffff2 | 102 | return w; |
okini3939 | 2:8646918ffff2 | 103 | } |
okini3939 | 0:d8a2cab7091c | 104 | |
okini3939 | 1:beff52210994 | 105 | void callback_http (int cid, int len) { |
okini3939 | 0:d8a2cab7091c | 106 | static int n = 0; |
okini3939 | 2:8646918ffff2 | 107 | static char buf[20], data[100]; |
okini3939 | 0:d8a2cab7091c | 108 | int i; |
okini3939 | 0:d8a2cab7091c | 109 | int last = len; |
okini3939 | 0:d8a2cab7091c | 110 | |
okini3939 | 2:8646918ffff2 | 111 | while (last) { |
okini3939 | 2:8646918ffff2 | 112 | len = gs.recv(cid, buf, last < sizeof(buf) ? last : sizeof(buf)); |
okini3939 | 2:8646918ffff2 | 113 | if (len == 0) break; |
okini3939 | 2:8646918ffff2 | 114 | last = last - len; |
okini3939 | 0:d8a2cab7091c | 115 | |
okini3939 | 2:8646918ffff2 | 116 | for (i = 0; i < len; i ++) { |
okini3939 | 2:8646918ffff2 | 117 | if (buf[i] == '\r') continue; |
okini3939 | 0:d8a2cab7091c | 118 | |
okini3939 | 0:d8a2cab7091c | 119 | // body |
okini3939 | 0:d8a2cab7091c | 120 | if (buf[i] == '\n') { |
okini3939 | 2:8646918ffff2 | 121 | // end of line |
okini3939 | 0:d8a2cab7091c | 122 | data[n] = 0; |
okini3939 | 2:8646918ffff2 | 123 | if (strstr(data, "class=\"info")) { |
okini3939 | 2:8646918ffff2 | 124 | n = weather_info(&data[17]); |
okini3939 | 2:8646918ffff2 | 125 | weather_flg ++; |
okini3939 | 2:8646918ffff2 | 126 | if (n && weather_flg == 2) { |
okini3939 | 2:8646918ffff2 | 127 | weather_data = n; |
okini3939 | 0:d8a2cab7091c | 128 | } |
okini3939 | 0:d8a2cab7091c | 129 | } |
okini3939 | 0:d8a2cab7091c | 130 | n = 0; |
okini3939 | 0:d8a2cab7091c | 131 | } else { |
okini3939 | 0:d8a2cab7091c | 132 | // data |
okini3939 | 0:d8a2cab7091c | 133 | if (n < sizeof(data) - 1) { |
okini3939 | 0:d8a2cab7091c | 134 | data[n] = buf[i]; |
okini3939 | 0:d8a2cab7091c | 135 | n ++; |
okini3939 | 0:d8a2cab7091c | 136 | } |
okini3939 | 0:d8a2cab7091c | 137 | } |
okini3939 | 0:d8a2cab7091c | 138 | |
okini3939 | 2:8646918ffff2 | 139 | } |
okini3939 | 0:d8a2cab7091c | 140 | |
okini3939 | 2:8646918ffff2 | 141 | } |
okini3939 | 0:d8a2cab7091c | 142 | } |
okini3939 | 0:d8a2cab7091c | 143 | |
okini3939 | 0:d8a2cab7091c | 144 | float get_temp () { |
okini3939 | 1:beff52210994 | 145 | float v, r, t; |
okini3939 | 0:d8a2cab7091c | 146 | |
okini3939 | 0:d8a2cab7091c | 147 | v = adtemp * VREF; |
okini3939 | 0:d8a2cab7091c | 148 | r = v / ((VREF - v) / RU); |
okini3939 | 0:d8a2cab7091c | 149 | t = (1.0 / ((1.0 / (T0 + 273.15)) + (log(r / R0) / B))) - 273.15; |
okini3939 | 0:d8a2cab7091c | 150 | if (t < -50) t = 0; |
okini3939 | 0:d8a2cab7091c | 151 | return t; |
okini3939 | 0:d8a2cab7091c | 152 | } |
okini3939 | 0:d8a2cab7091c | 153 | |
okini3939 | 0:d8a2cab7091c | 154 | void Sleep () { |
okini3939 | 0:d8a2cab7091c | 155 | __WFI(); |
okini3939 | 0:d8a2cab7091c | 156 | } |
okini3939 | 0:d8a2cab7091c | 157 | |
okini3939 | 0:d8a2cab7091c | 158 | int main() { |
okini3939 | 2:8646918ffff2 | 159 | int flg = 0, r; |
okini3939 | 1:beff52210994 | 160 | Host host, ntp; |
okini3939 | 0:d8a2cab7091c | 161 | int count = 0; |
okini3939 | 1:beff52210994 | 162 | time_t time; |
okini3939 | 1:beff52210994 | 163 | struct tm *t; |
okini3939 | 0:d8a2cab7091c | 164 | |
okini3939 | 0:d8a2cab7091c | 165 | initled(); |
okini3939 | 0:d8a2cab7091c | 166 | #if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) |
okini3939 | 0:d8a2cab7091c | 167 | pc.baud(115200); |
okini3939 | 0:d8a2cab7091c | 168 | #endif |
okini3939 | 2:8646918ffff2 | 169 | bz = 1; |
okini3939 | 0:d8a2cab7091c | 170 | gs_reset = 0; |
okini3939 | 0:d8a2cab7091c | 171 | gs_wakeup = 1; |
okini3939 | 0:d8a2cab7091c | 172 | wait_ms(100); |
okini3939 | 0:d8a2cab7091c | 173 | gs_reset = 1; |
okini3939 | 0:d8a2cab7091c | 174 | wait_ms(500); |
okini3939 | 0:d8a2cab7091c | 175 | led1 = 1; |
okini3939 | 0:d8a2cab7091c | 176 | |
okini3939 | 2:8646918ffff2 | 177 | startled(); |
okini3939 | 2:8646918ffff2 | 178 | writeled5(0, 18, 1); // i |
okini3939 | 2:8646918ffff2 | 179 | writeled5(1, 23, 1); // n |
okini3939 | 2:8646918ffff2 | 180 | writeled5(2, 18, 1); // i |
okini3939 | 2:8646918ffff2 | 181 | writeled5(3, 29, 1); // t |
okini3939 | 2:8646918ffff2 | 182 | |
okini3939 | 2:8646918ffff2 | 183 | if (gs.connect(SECURE, SSID, PASS, 1)) { |
okini3939 | 2:8646918ffff2 | 184 | writeled5(0, 14, 1); // e |
okini3939 | 2:8646918ffff2 | 185 | writeled5(1, 27, 1); // r |
okini3939 | 2:8646918ffff2 | 186 | writeled5(2, 27, 1); // r |
okini3939 | 2:8646918ffff2 | 187 | writeled5(3, 0, 0); // |
okini3939 | 2:8646918ffff2 | 188 | writeled5(4, 2, 0); // R |
okini3939 | 2:8646918ffff2 | 189 | writeled5(5, 2, 0); // R |
okini3939 | 2:8646918ffff2 | 190 | for (;;) Sleep(); |
okini3939 | 0:d8a2cab7091c | 191 | } |
okini3939 | 0:d8a2cab7091c | 192 | |
okini3939 | 2:8646918ffff2 | 193 | wdt.init(8); |
okini3939 | 2:8646918ffff2 | 194 | |
okini3939 | 2:8646918ffff2 | 195 | host.setName(HTTP_HOST); |
okini3939 | 1:beff52210994 | 196 | ntp.setName(NTP_HOST); |
okini3939 | 2:8646918ffff2 | 197 | |
okini3939 | 1:beff52210994 | 198 | gs.ntpdate(ntp, 0); |
okini3939 | 2:8646918ffff2 | 199 | wait(10); |
okini3939 | 1:beff52210994 | 200 | gs.ntpdate(ntp, 3 * 60 * 60); |
okini3939 | 1:beff52210994 | 201 | |
okini3939 | 0:d8a2cab7091c | 202 | #if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) |
okini3939 | 0:d8a2cab7091c | 203 | pc.printf("Denki-yohou: %s\r\n", HTTP_HOST); |
okini3939 | 0:d8a2cab7091c | 204 | #endif |
okini3939 | 0:d8a2cab7091c | 205 | |
okini3939 | 0:d8a2cab7091c | 206 | while(1) { |
okini3939 | 0:d8a2cab7091c | 207 | gs.poll(); |
okini3939 | 2:8646918ffff2 | 208 | wdt.kick(); |
okini3939 | 0:d8a2cab7091c | 209 | |
okini3939 | 2:8646918ffff2 | 210 | if (flg == 0) { |
okini3939 | 2:8646918ffff2 | 211 | if (gs.isConnected()) { |
okini3939 | 2:8646918ffff2 | 212 | flg = 180; |
okini3939 | 2:8646918ffff2 | 213 | led2 = 1; |
okini3939 | 2:8646918ffff2 | 214 | |
okini3939 | 2:8646918ffff2 | 215 | // Weather |
okini3939 | 2:8646918ffff2 | 216 | if (weather_count == 0) { |
okini3939 | 2:8646918ffff2 | 217 | weather_flg = 0; |
okini3939 | 2:8646918ffff2 | 218 | r = gs.httpGet(host, HTTP_URI, 0, &callback_http); |
okini3939 | 2:8646918ffff2 | 219 | if (r >= 0) { |
okini3939 | 2:8646918ffff2 | 220 | led3 = 0; |
okini3939 | 2:8646918ffff2 | 221 | } else { |
okini3939 | 2:8646918ffff2 | 222 | led3 = 1; |
okini3939 | 2:8646918ffff2 | 223 | } |
okini3939 | 2:8646918ffff2 | 224 | gs.poll(); |
okini3939 | 2:8646918ffff2 | 225 | weather_count = 20; |
okini3939 | 2:8646918ffff2 | 226 | } else { |
okini3939 | 2:8646918ffff2 | 227 | weather_count --; |
okini3939 | 0:d8a2cab7091c | 228 | } |
okini3939 | 1:beff52210994 | 229 | |
okini3939 | 2:8646918ffff2 | 230 | wdt.kick(); |
okini3939 | 2:8646918ffff2 | 231 | wait(3); |
okini3939 | 2:8646918ffff2 | 232 | gs.poll(); |
okini3939 | 2:8646918ffff2 | 233 | wdt.kick(); |
okini3939 | 2:8646918ffff2 | 234 | |
okini3939 | 2:8646918ffff2 | 235 | // NTP date |
okini3939 | 2:8646918ffff2 | 236 | r = gs.getTime(); |
okini3939 | 2:8646918ffff2 | 237 | if (r) { |
okini3939 | 2:8646918ffff2 | 238 | time = r + (9 * 3600); // JST |
okini3939 | 2:8646918ffff2 | 239 | } |
okini3939 | 2:8646918ffff2 | 240 | |
okini3939 | 2:8646918ffff2 | 241 | led2 = 0; |
okini3939 | 2:8646918ffff2 | 242 | wdt.kick(); |
okini3939 | 2:8646918ffff2 | 243 | } else { |
okini3939 | 2:8646918ffff2 | 244 | // re-connected |
okini3939 | 2:8646918ffff2 | 245 | led2 = 1; |
okini3939 | 2:8646918ffff2 | 246 | if (gs.connect(SECURE, SSID, PASS, 1)) { |
okini3939 | 2:8646918ffff2 | 247 | led4 = 1; |
okini3939 | 0:d8a2cab7091c | 248 | } else { |
okini3939 | 2:8646918ffff2 | 249 | led4 = 0; |
okini3939 | 0:d8a2cab7091c | 250 | } |
okini3939 | 2:8646918ffff2 | 251 | led2 = 0; |
okini3939 | 2:8646918ffff2 | 252 | } |
okini3939 | 0:d8a2cab7091c | 253 | } |
okini3939 | 0:d8a2cab7091c | 254 | |
okini3939 | 0:d8a2cab7091c | 255 | if (count == 0) { // 0sec |
okini3939 | 1:beff52210994 | 256 | // time |
okini3939 | 1:beff52210994 | 257 | t = localtime(&time); |
okini3939 | 1:beff52210994 | 258 | writeled(t->tm_hour * 100 + t->tm_min, 2, 0x0f, 0x0f); |
okini3939 | 2:8646918ffff2 | 259 | writeled5(4, weather_data & 0x07, 0); |
okini3939 | 2:8646918ffff2 | 260 | writeled5(5, (weather_data >> 4) & 0x07, 0); |
okini3939 | 2:8646918ffff2 | 261 | remote_flg = 0; |
okini3939 | 0:d8a2cab7091c | 262 | } else |
okini3939 | 2:8646918ffff2 | 263 | if (count > 0 /* && count < 6000 */ && !remote_flg) { |
okini3939 | 1:beff52210994 | 264 | // time blink |
okini3939 | 1:beff52210994 | 265 | if (count % 400 == 0) { // 0sec |
okini3939 | 1:beff52210994 | 266 | writeled(t->tm_hour * 100 + t->tm_min, 2, 0x0f, 0x0f); |
okini3939 | 1:beff52210994 | 267 | } else |
okini3939 | 1:beff52210994 | 268 | if (count % 400 == 200) { // 0.1sec |
okini3939 | 1:beff52210994 | 269 | writeled(t->tm_hour * 100 + t->tm_min, 0, 0x0f, 0x0f); |
okini3939 | 1:beff52210994 | 270 | } |
okini3939 | 2:8646918ffff2 | 271 | /* |
okini3939 | 1:beff52210994 | 272 | } else |
okini3939 | 1:beff52210994 | 273 | if (count == 6000) { // 15sec |
okini3939 | 1:beff52210994 | 274 | // temp. |
okini3939 | 2:8646918ffff2 | 275 | writeled(get_temp() * 100, 2, 0x0e, 0); |
okini3939 | 2:8646918ffff2 | 276 | writeled5(3, 12, 1); |
okini3939 | 2:8646918ffff2 | 277 | */ |
okini3939 | 0:d8a2cab7091c | 278 | } |
okini3939 | 0:d8a2cab7091c | 279 | |
okini3939 | 2:8646918ffff2 | 280 | if (count % 400 == 0) { // every 0sec |
okini3939 | 0:d8a2cab7091c | 281 | led1 = 1; |
okini3939 | 2:8646918ffff2 | 282 | |
okini3939 | 2:8646918ffff2 | 283 | // oclock buzzer |
okini3939 | 2:8646918ffff2 | 284 | t = localtime(&time); |
okini3939 | 2:8646918ffff2 | 285 | if (t->tm_min == 0) { |
okini3939 | 2:8646918ffff2 | 286 | if (t->tm_sec == 0) { |
okini3939 | 2:8646918ffff2 | 287 | bz = 0; |
okini3939 | 2:8646918ffff2 | 288 | } else |
okini3939 | 2:8646918ffff2 | 289 | if (t->tm_sec == 1) { |
okini3939 | 2:8646918ffff2 | 290 | bz = 1; |
okini3939 | 2:8646918ffff2 | 291 | } |
okini3939 | 2:8646918ffff2 | 292 | } |
okini3939 | 0:d8a2cab7091c | 293 | } else |
okini3939 | 2:8646918ffff2 | 294 | if (count % 400 == 10) { // every 0.1sec |
okini3939 | 0:d8a2cab7091c | 295 | led1 = 0; |
okini3939 | 1:beff52210994 | 296 | |
okini3939 | 1:beff52210994 | 297 | time ++; |
okini3939 | 2:8646918ffff2 | 298 | if (flg) flg --; |
okini3939 | 0:d8a2cab7091c | 299 | } |
okini3939 | 0:d8a2cab7091c | 300 | |
okini3939 | 1:beff52210994 | 301 | count ++; |
okini3939 | 1:beff52210994 | 302 | if (count >= 8000) count = 0; // 20sec |
okini3939 | 1:beff52210994 | 303 | |
okini3939 | 0:d8a2cab7091c | 304 | Sleep(); |
okini3939 | 0:d8a2cab7091c | 305 | } |
okini3939 | 0:d8a2cab7091c | 306 | } |