![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
bChange
Dependencies: TextLCD
main.cpp
- Committer:
- nishimura_taku_pet
- Date:
- 2020-07-28
- Revision:
- 3:7e046dd4942c
- Parent:
- 2:dbb39def2b89
- Child:
- 4:207de1651f4f
File content as of revision 3:7e046dd4942c:
/* mbed Microcontroller Library * Copyright (c) 2019 ARM Limited * SPDX-License-Identifier: Apache-2.0 */ #include "mbed.h" #include "TextLCD.h" #define MIN_V 2.23 #define MAX_V 3.3 //0.107 I2C i2c_lcd(p9, p10); TextLCD_I2C lcd(&i2c_lcd, (0x27 << 1), TextLCD::LCD16x2, TextLCD::HD44780); int b = 0; AnalogIn battery(p15); Serial pc(USBTX, USBRX); // USBシリアルポートのインスタンス int isBacklight = 0; int isTimer = 0; void lcdBacklight(void const *argument); RtosTimer bTimer(lcdBacklight, osTimerPeriodic); void lcdBacklight(void const *argument){ if(isBacklight){ lcd.setBacklight(TextLCD::LightOn); }else{ lcd.setBacklight(TextLCD::LightOff); } isBacklight = !isBacklight; } void change(){ lcd.setBacklight(TextLCD::LightOn); while(true){ b = (int)((battery.read()* MAX_V - MIN_V)/0.107 + 0.5)*10; if(b < 0){ b = 0; }else if(b > 100){ b = 100; } lcd.locate(0,0); lcd.printf("Battery:%3d%%",b); if(b <= 30){ if(isTimer == 0){ isTimer = 1; bTimer.start(500); } }else{ if(isTimer == 1){ bTimer.stop(); lcd.setBacklight(TextLCD::LightOn); isTimer = 0; } } wait_us(1000000); /*for(double i = MAX_V;i > MIN_V;i -= 0.05){ b = (int)((i - MIN_V)/0.107 + 0.5)*10; //printf("i = %.2f,b=%d%\r\n",i,b); lcd.locate(0,0); lcd.printf("Battery:%3d%%",b); if(b <= 30){ for(int j = 0;j*(2*b+20) < 200;j++){ lcd.setBacklight(TextLCD::LightOff); thread_sleep_for(b+10); lcd.setBacklight(TextLCD::LightOn); thread_sleep_for(b+10); } }else{ thread_sleep_for(200); } }*/ } } /*void change(){ }*/ int main() { //Thread thread(change,NULL,osPriorityNormal); Thread thread; thread.start(change); while (true) { wait(1); } }