bChange
Dependencies: TextLCD
main.cpp@8:0719ca2421b4, 2020-07-29 (annotated)
- Committer:
- nishimura_taku_pet
- Date:
- Wed Jul 29 02:32:43 2020 +0000
- Revision:
- 8:0719ca2421b4
- Parent:
- 7:3fc517224e66
commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nishimura_taku_pet | 0:18811ba92e94 | 1 | /* mbed Microcontroller Library |
nishimura_taku_pet | 0:18811ba92e94 | 2 | * Copyright (c) 2019 ARM Limited |
nishimura_taku_pet | 0:18811ba92e94 | 3 | * SPDX-License-Identifier: Apache-2.0 |
nishimura_taku_pet | 0:18811ba92e94 | 4 | */ |
nishimura_taku_pet | 0:18811ba92e94 | 5 | |
nishimura_taku_pet | 0:18811ba92e94 | 6 | #include "mbed.h" |
nishimura_taku_pet | 0:18811ba92e94 | 7 | #include "TextLCD.h" |
nishimura_taku_pet | 4:207de1651f4f | 8 | #define MIN_V 2.0 |
nishimura_taku_pet | 4:207de1651f4f | 9 | #define MAX_V 2.67 |
nishimura_taku_pet | 5:a0ebf165abb1 | 10 | //0.107 2.23,3.3 |
nishimura_taku_pet | 4:207de1651f4f | 11 | I2C i2c_lcd(p28, p27); |
nishimura_taku_pet | 0:18811ba92e94 | 12 | TextLCD_I2C lcd(&i2c_lcd, (0x27 << 1), TextLCD::LCD16x2, TextLCD::HD44780); |
nishimura_taku_pet | 0:18811ba92e94 | 13 | |
nishimura_taku_pet | 0:18811ba92e94 | 14 | int b = 0; |
nishimura_taku_pet | 0:18811ba92e94 | 15 | AnalogIn battery(p15); |
nishimura_taku_pet | 1:60e68d110d01 | 16 | Serial pc(USBTX, USBRX); // USBシリアルポートのインスタンス |
nishimura_taku_pet | 4:207de1651f4f | 17 | int flag_b = 0; |
nishimura_taku_pet | 4:207de1651f4f | 18 | int flag_t = 0; |
nishimura_taku_pet | 2:dbb39def2b89 | 19 | void lcdBacklight(void const *argument); |
nishimura_taku_pet | 3:7e046dd4942c | 20 | RtosTimer bTimer(lcdBacklight, osTimerPeriodic); |
nishimura_taku_pet | 2:dbb39def2b89 | 21 | void lcdBacklight(void const *argument){ |
nishimura_taku_pet | 4:207de1651f4f | 22 | if(flag_b == 1){ |
nishimura_taku_pet | 2:dbb39def2b89 | 23 | lcd.setBacklight(TextLCD::LightOn); |
nishimura_taku_pet | 2:dbb39def2b89 | 24 | }else{ |
nishimura_taku_pet | 2:dbb39def2b89 | 25 | lcd.setBacklight(TextLCD::LightOff); |
nishimura_taku_pet | 2:dbb39def2b89 | 26 | } |
nishimura_taku_pet | 4:207de1651f4f | 27 | flag_b = !flag_b; |
nishimura_taku_pet | 2:dbb39def2b89 | 28 | } |
nishimura_taku_pet | 7:3fc517224e66 | 29 | void bChange(){ |
nishimura_taku_pet | 2:dbb39def2b89 | 30 | lcd.setBacklight(TextLCD::LightOn); |
nishimura_taku_pet | 0:18811ba92e94 | 31 | while(true){ |
nishimura_taku_pet | 8:0719ca2421b4 | 32 | //double test = battery.read(); |
nishimura_taku_pet | 8:0719ca2421b4 | 33 | b = (int)(((battery.read() * 3.3 - MIN_V)/0.67)*10+0.5)*10; |
nishimura_taku_pet | 7:3fc517224e66 | 34 | //b = (int)(((test*3.3 - MIN_V))/(MAX_V) + 0.5)*10; |
nishimura_taku_pet | 7:3fc517224e66 | 35 | pc.printf("test*3.3=%f,b = %d\r\n",test*3.3,b); |
nishimura_taku_pet | 4:207de1651f4f | 36 | if(b < 0){//すべての機能停止 |
nishimura_taku_pet | 7:3fc517224e66 | 37 | /*lcd.setBacklight(TextLCD::LightOff); |
nishimura_taku_pet | 4:207de1651f4f | 38 | bTimer.stop(); |
nishimura_taku_pet | 7:3fc517224e66 | 39 | exit(1);*/ |
nishimura_taku_pet | 7:3fc517224e66 | 40 | b = 0; |
nishimura_taku_pet | 2:dbb39def2b89 | 41 | }else if(b > 100){ |
nishimura_taku_pet | 2:dbb39def2b89 | 42 | b = 100; |
nishimura_taku_pet | 2:dbb39def2b89 | 43 | } |
nishimura_taku_pet | 0:18811ba92e94 | 44 | lcd.locate(0,0); |
nishimura_taku_pet | 0:18811ba92e94 | 45 | lcd.printf("Battery:%3d%%",b); |
nishimura_taku_pet | 2:dbb39def2b89 | 46 | if(b <= 30){ |
nishimura_taku_pet | 4:207de1651f4f | 47 | if(flag_t == 0){ |
nishimura_taku_pet | 3:7e046dd4942c | 48 | bTimer.start(500); |
nishimura_taku_pet | 4:207de1651f4f | 49 | flag_t = 1; |
nishimura_taku_pet | 2:dbb39def2b89 | 50 | } |
nishimura_taku_pet | 2:dbb39def2b89 | 51 | }else{ |
nishimura_taku_pet | 4:207de1651f4f | 52 | if(flag_t == 1){ |
nishimura_taku_pet | 3:7e046dd4942c | 53 | bTimer.stop(); |
nishimura_taku_pet | 2:dbb39def2b89 | 54 | lcd.setBacklight(TextLCD::LightOn); |
nishimura_taku_pet | 4:207de1651f4f | 55 | flag_t = 0; |
nishimura_taku_pet | 2:dbb39def2b89 | 56 | } |
nishimura_taku_pet | 2:dbb39def2b89 | 57 | } |
nishimura_taku_pet | 2:dbb39def2b89 | 58 | wait_us(1000000); |
nishimura_taku_pet | 0:18811ba92e94 | 59 | /*for(double i = MAX_V;i > MIN_V;i -= 0.05){ |
nishimura_taku_pet | 0:18811ba92e94 | 60 | b = (int)((i - MIN_V)/0.107 + 0.5)*10; |
nishimura_taku_pet | 0:18811ba92e94 | 61 | //printf("i = %.2f,b=%d%\r\n",i,b); |
nishimura_taku_pet | 0:18811ba92e94 | 62 | lcd.locate(0,0); |
nishimura_taku_pet | 0:18811ba92e94 | 63 | lcd.printf("Battery:%3d%%",b); |
nishimura_taku_pet | 0:18811ba92e94 | 64 | if(b <= 30){ |
nishimura_taku_pet | 0:18811ba92e94 | 65 | for(int j = 0;j*(2*b+20) < 200;j++){ |
nishimura_taku_pet | 0:18811ba92e94 | 66 | lcd.setBacklight(TextLCD::LightOff); |
nishimura_taku_pet | 0:18811ba92e94 | 67 | thread_sleep_for(b+10); |
nishimura_taku_pet | 0:18811ba92e94 | 68 | lcd.setBacklight(TextLCD::LightOn); |
nishimura_taku_pet | 0:18811ba92e94 | 69 | thread_sleep_for(b+10); |
nishimura_taku_pet | 0:18811ba92e94 | 70 | } |
nishimura_taku_pet | 0:18811ba92e94 | 71 | }else{ |
nishimura_taku_pet | 0:18811ba92e94 | 72 | thread_sleep_for(200); |
nishimura_taku_pet | 0:18811ba92e94 | 73 | } |
nishimura_taku_pet | 0:18811ba92e94 | 74 | }*/ |
nishimura_taku_pet | 0:18811ba92e94 | 75 | } |
nishimura_taku_pet | 0:18811ba92e94 | 76 | |
nishimura_taku_pet | 0:18811ba92e94 | 77 | |
nishimura_taku_pet | 0:18811ba92e94 | 78 | } |
nishimura_taku_pet | 0:18811ba92e94 | 79 | |
nishimura_taku_pet | 7:3fc517224e66 | 80 | /*void bChange{ |
nishimura_taku_pet | 1:60e68d110d01 | 81 | |
nishimura_taku_pet | 1:60e68d110d01 | 82 | }*/ |
nishimura_taku_pet | 1:60e68d110d01 | 83 | |
nishimura_taku_pet | 0:18811ba92e94 | 84 | int main() |
nishimura_taku_pet | 0:18811ba92e94 | 85 | { |
nishimura_taku_pet | 2:dbb39def2b89 | 86 | //Thread thread(change,NULL,osPriorityNormal); |
nishimura_taku_pet | 2:dbb39def2b89 | 87 | Thread thread; |
nishimura_taku_pet | 7:3fc517224e66 | 88 | thread.start(bChange); |
nishimura_taku_pet | 0:18811ba92e94 | 89 | while (true) { |
nishimura_taku_pet | 0:18811ba92e94 | 90 | wait(1); |
nishimura_taku_pet | 0:18811ba92e94 | 91 | } |
nishimura_taku_pet | 0:18811ba92e94 | 92 | } |