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: RemoteIR TextLCD
Diff: main.cpp
- Revision:
- 4:3f80c0180e2f
- Parent:
- 3:2ae6218973be
- Child:
- 5:3fffb364744b
--- a/main.cpp Wed Jul 29 01:24:51 2020 +0000
+++ b/main.cpp Wed Jul 29 03:10:44 2020 +0000
@@ -103,20 +103,21 @@
void trace(void const *argument);
void watchsurrounding();
int watch();
-void bChange(void const *argument);
+void bChange(/*void const *argument*/);
void display();
void lcdBacklight(void const *argument);
-Thread thread1(decodeIR, NULL, osPriorityAboveNormal);
-Thread thread2(motor, NULL, osPriorityNormal);
-Thread thread3(avoidance, NULL, osPriorityLow);
-Thread thread4(trace, NULL, osPriorityLow);
-Thread thread5(bChange, NULL, osPriorityIdle);
+Thread thread1(decodeIR, NULL, osPriorityRealtime);//+3
+Thread thread2(motor, NULL, osPriorityHigh);//+2
+Thread thread3(avoidance, NULL, osPriorityHigh);//+2
+Thread thread4(trace, NULL, osPriorityHigh);//+2
+//Thread thread5(bChange, NULL, osPriorityBelowNormal);//-1
RtosTimer bTimer(lcdBacklight, osTimerPeriodic);
-void decodeIR(void const *argument){
- while(1){
+ void decodeIR(void const *argument){
+ while(1){
// 受信待ち
+ pc.printf("decodeIR\r\n");
if (ir.getState() == ReceiverIR::Received) {
// コード受信
bitcount = ir.getData(&format, buf, sizeof(buf) * 8);
@@ -135,6 +136,9 @@
case 0x40bf27d8://クイック
pc.printf("mode = SPEED\r\n");
mode = SPEED;
+ changeSpeed();
+ display();
+ mode = beforeMode;
break;
case 0x40be34cb://レグザリンク
pc.printf("mode = INE_TRACE\r\n");
@@ -181,8 +185,20 @@
}
}
}
- ThisThread::sleep_for(10);
- }
+ if(viewTimer.read_ms()>=3000){
+ //pc.printf("a");
+ viewTimer.stop();
+ //defaultView();
+ viewTimer.reset();
+ display();
+ //flaga=0;
+ }
+ //pc.printf(" main2\r\n");
+ //if(viewTimer.read_ms()==0){
+ // display();
+ //}
+ ThisThread::sleep_for(90);
+ }
}
void motor(void const *argument){
while(true){
@@ -223,7 +239,7 @@
break;
}
pc.printf(" motor\r\n");
- ThisThread::sleep_for(50);
+ ThisThread::sleep_for(30);
}
}
void changeSpeed(){
@@ -276,9 +292,9 @@
break;
}
pc.printf(" line trace\r\n");
- ThisThread::sleep_for(50);
+ ThisThread::sleep_for(30);
}else{
- ThisThread::sleep_for(50);
+ ThisThread::sleep_for(1);
}
}
}
@@ -369,7 +385,7 @@
watchsurrounding();
pc.printf(" avoidance\r\n");
}else{
- ThisThread::sleep_for(50);
+ ThisThread::sleep_for(1);
}
}
}
@@ -508,7 +524,7 @@
flag_b = !flag_b;
}
-void bChange(void const *argument){
+void bChange(/*void const *argument*/){
/*while(1){
pc.printf(" bChange1\r\n");
lcd.setBacklight(TextLCD::LightOn);
@@ -528,11 +544,13 @@
lcd.setBacklight(TextLCD::LightOn);
while(1){
pc.printf(" bChange1\r\n");
- b = (int)((battery.read()* MAX_V - MIN_V)/0.067 + 0.5)*10;
- if(b < 0){//すべての機能停止
- lcd.setBacklight(TextLCD::LightOff);
+ b = (int)(((battery.read() * 3.3 - MIN_V)/0.67)*10+0.5)*10;
+ pc.printf("%f",battery.read());
+ if(b < 0){//すべての機能停止(今はなし)
+ /*lcd.setBacklight(TextLCD::LightOff);
bTimer.stop();
- exit(1);
+ exit(1);*/
+ b = 0;
}else if(b > 100){
b = 100;
}
@@ -554,19 +572,21 @@
}
}
}
-
+ ThisThread::sleep_for(500);
}
int main() {
mode = READY;
beforeMode = READY;
run = STOP;
flag_sp = NORMAL;
+ display();
//defaultView();
while(1){
pc.printf(" main1\r\n");
- switch(mode){
- /*case ADVANCE:
+ // 受信待ち
+ /*switch(mode){
+ case ADVANCE:
run = ADVANCE;
break;
case RIGHT:
@@ -583,15 +603,15 @@
break;
case READY:
run = STOP;
- break;*/
+ break;
case SPEED:
changeSpeed();
display();
mode = beforeMode;
break;
- }
+ }*/
- if(viewTimer.read_ms()>=3000){
+/* if(viewTimer.read_ms()>=3000){
pc.printf("a");
viewTimer.stop();
//defaultView();
@@ -601,8 +621,9 @@
pc.printf(" main2\r\n");
if(viewTimer.read_ms()==0){
display();
- }
+ }*/
+ bChange();
pc.printf(" main3\r\n");
- ThisThread::sleep_for(10);
+ ThisThread::sleep_for(1);
}
}
\ No newline at end of file