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: 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);
}
}