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.
Diff: System/Process/Process.cpp
- Revision:
- 45:0cf48a0605cd
- Parent:
- 44:2aff0da5ebdb
- Child:
- 46:68296caae1af
diff -r 2aff0da5ebdb -r 0cf48a0605cd System/Process/Process.cpp
--- a/System/Process/Process.cpp Sun Nov 10 05:51:51 2019 +0000
+++ b/System/Process/Process.cpp Mon Nov 11 08:11:29 2019 +0000
@@ -475,115 +475,127 @@
fast=40;
normal=30;
slow=20;
- motor[TIRE_FR].pwm = normal;
+ motor[TIRE_FR].pwm = normal+20;
motor[TIRE_FR].dir = FOR;
- motor[TIRE_FL].pwm = normal;
+ motor[TIRE_FL].pwm = normal+20;
motor[TIRE_FL].dir = BACK;
- motor[TIRE_BR].pwm = normal;
+ motor[TIRE_BR].pwm = normal+20;
motor[TIRE_BR].dir = FOR;
- motor[TIRE_BL].pwm = normal;
+ motor[TIRE_BL].pwm = normal+20;
motor[TIRE_BL].dir = BACK;
if(g[2]==0&&countss>=100000) {
countss=100000;
cross=0;
mode=3;
}
- } else if(mode==3) { //横ライントレースから縦ライントレースへ
+ }
+ else if(mode==3) { //横ライントレースから縦ライントレースへ
motor[TIRE_FR].pwm = 30;
motor[TIRE_FR].dir = FOR;
- motor[TIRE_FL].pwm = 0;
- motor[TIRE_FL].dir = FREE;
- motor[TIRE_BR].pwm = 0;
- motor[TIRE_BR].dir = FREE;
+ motor[TIRE_FL].pwm = 255;
+ motor[TIRE_FL].dir = BRAKE;
+ motor[TIRE_BR].pwm = 255;
+ motor[TIRE_BR].dir = BRAKE;
motor[TIRE_BL].pwm = 30;
motor[TIRE_BL].dir = BACK;
if(g[1]==0) {
mode=10;
countss=100000;
}
- } else if(mode==10) { //縦ライントレース
+ }
+ else if(mode==10) { //縦ライントレース
switch(g[1]) {
case 98:
- motor[TIRE_FR].pwm = normal;
+ motor[TIRE_FR].pwm = normal+50;
motor[TIRE_FR].dir = FOR;
- motor[TIRE_FL].pwm = normal;
+ motor[TIRE_FL].pwm = normal+50;
motor[TIRE_FL].dir = BACK;
- motor[TIRE_BR].pwm = normal;
+ motor[TIRE_BR].pwm = normal+50;
motor[TIRE_BR].dir = FOR;
- motor[TIRE_BL].pwm = normal;
+ motor[TIRE_BL].pwm = normal+50;
motor[TIRE_BL].dir = BACK;
mtc=true;
if(countss>80000) {
cross++;
countss=0;
}
+
+ if(cross==2){
+ fast = 10;
+ normal = 10;
+ slow = 5;
+ }
+
if(cross==3) {
+ fast=40;
+ normal=30;
+ slow=20;
mode=11;
countss=0;
cross=0;
}
break;
case 0:
- motor[TIRE_FR].pwm = fast;
+ motor[TIRE_FR].pwm = fast+50;
motor[TIRE_FR].dir = FOR;
- motor[TIRE_FL].pwm = fast;
+ motor[TIRE_FL].pwm = fast+50;
motor[TIRE_FL].dir = BACK;
- motor[TIRE_BR].pwm = fast;
+ motor[TIRE_BR].pwm = fast+50;
motor[TIRE_BR].dir = FOR;
- motor[TIRE_BL].pwm = fast;
+ motor[TIRE_BL].pwm = fast+50;
motor[TIRE_BL].dir = BACK;
mtc=true;
break;
case 255:
- motor[TIRE_FR].pwm = fast;
+ motor[TIRE_FR].pwm = fast+50;
motor[TIRE_FR].dir = FOR;
- motor[TIRE_FL].pwm = slow;
+ motor[TIRE_FL].pwm = slow+50;
motor[TIRE_FL].dir = BACK;
- motor[TIRE_BR].pwm = slow;
+ motor[TIRE_BR].pwm = slow+50;
motor[TIRE_BR].dir = FOR;
- motor[TIRE_BL].pwm = fast;
+ motor[TIRE_BL].pwm = fast+50;
motor[TIRE_BL].dir = BACK;
mtc=true;
break;
case 253:
- motor[TIRE_FR].pwm = slow;
+ motor[TIRE_FR].pwm = slow+50;
motor[TIRE_FR].dir = FOR;
motor[TIRE_FL].pwm = 0;
motor[TIRE_FL].dir = FREE;
motor[TIRE_BR].pwm = 0;
motor[TIRE_BR].dir = FREE;
- motor[TIRE_BL].pwm = slow;
+ motor[TIRE_BL].pwm = slow+50;
motor[TIRE_BL].dir = BACK;
mtc=true;
break;
case 254:
- motor[TIRE_FR].pwm = normal;
+ motor[TIRE_FR].pwm = normal+50;
motor[TIRE_FR].dir = FOR;
motor[TIRE_FL].pwm = 0;
motor[TIRE_FL].dir = FREE;
motor[TIRE_BR].pwm = 0;
motor[TIRE_BR].dir = FREE;
- motor[TIRE_BL].pwm = normal;
+ motor[TIRE_BL].pwm = normal+50;
motor[TIRE_BL].dir = BACK;
mtc=true;
break;
case 1:
- motor[TIRE_FR].pwm = slow;
+ motor[TIRE_FR].pwm = slow+50;
motor[TIRE_FR].dir = FOR;
- motor[TIRE_FL].pwm = fast;
+ motor[TIRE_FL].pwm = fast+50;
motor[TIRE_FL].dir = BACK;
- motor[TIRE_BR].pwm = fast;
+ motor[TIRE_BR].pwm = fast+50;
motor[TIRE_BR].dir = FOR;
- motor[TIRE_BL].pwm = slow;
+ motor[TIRE_BL].pwm = slow+50;
motor[TIRE_BL].dir = BACK;
mtc=true;
break;
case 3:
motor[TIRE_FR].pwm = 0;
motor[TIRE_FR].dir = FREE;
- motor[TIRE_FL].pwm = slow;
+ motor[TIRE_FL].pwm = slow+50;
motor[TIRE_FL].dir = BACK;
- motor[TIRE_BR].pwm = slow;
+ motor[TIRE_BR].pwm = slow+50;
motor[TIRE_BR].dir = FOR;
motor[TIRE_BL].pwm = 0;
motor[TIRE_BL].dir = FREE;
@@ -592,43 +604,43 @@
case 2:
motor[TIRE_FR].pwm = 0;
motor[TIRE_FR].dir = FREE;
- motor[TIRE_FL].pwm = normal;
+ motor[TIRE_FL].pwm = normal+50;
motor[TIRE_FL].dir = BACK;
- motor[TIRE_BR].pwm = normal;
+ motor[TIRE_BR].pwm = normal+50;
motor[TIRE_BR].dir = FOR;
motor[TIRE_BL].pwm = 0;
motor[TIRE_BL].dir = FREE;
mtc=true;
break;
}
- if(g[0]!=98&&mtc==true) {
+ if(g[1]!=98&&mtc==true) {
switch(g[0]) {
case 0:
mtc=false;
break;
case 255:
- motor[TIRE_FL].pwm += 5;
+ motor[TIRE_FL].pwm += 3;
mtc=false;
break;
case 253:
- motor[TIRE_FL].pwm += 10;
+ motor[TIRE_FL].pwm += 6;
mtc=false;
break;
case 254:
- motor[TIRE_FL].pwm += 20;
+ motor[TIRE_FL].pwm += 9;
motor[TIRE_FR].pwm = 0;
mtc=false;
break;
case 1:
- motor[TIRE_FR].pwm += 5;
+ motor[TIRE_FR].pwm += 3;
mtc=false;
break;
case 3:
- motor[TIRE_FR].pwm += 10;
+ motor[TIRE_FR].pwm += 6;
mtc=false;
break;
case 2:
- motor[TIRE_FR].pwm += 20;
+ motor[TIRE_FR].pwm += 9;
motor[TIRE_FL].pwm = 0;
mtc=false;
break;
@@ -637,47 +649,49 @@
} else if(mode==11) {
motor[TIRE_FR].pwm = normal;
motor[TIRE_FR].dir = FOR;
- motor[TIRE_FL].pwm = 0;
- motor[TIRE_FL].dir = FREE;
- motor[TIRE_BR].pwm = 0;
- motor[TIRE_BR].dir = FREE;
+ motor[TIRE_FL].pwm = 25;
+ motor[TIRE_FL].dir = FOR;
+ motor[TIRE_BR].pwm = 25;
+ motor[TIRE_BR].dir = FOR;
motor[TIRE_BL].pwm = normal;
motor[TIRE_BL].dir = BACK;
- if(g[2]==0) {
+ if(g[2]==0 || g[2]==255 || g[2]==254 || g[2]==253) {
countss=0;
cross=0;
mode=20;
}
- } else if(mode==20) {
+ }
+ else if(mode==20) {
solenoid.solenoid4= SOLENOID_ON;
switch(g[2]) {
case 98:
- motor[TIRE_FR].pwm = normal;
+ motor[TIRE_FR].pwm = normal+20;
motor[TIRE_FR].dir = FOR;
- motor[TIRE_FL].pwm = normal;
+ motor[TIRE_FL].pwm = normal+20;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = normal;
+ motor[TIRE_BR].pwm = normal+20;
motor[TIRE_BR].dir = BACK;
- motor[TIRE_BL].pwm = normal;
+ motor[TIRE_BL].pwm = normal+20;
motor[TIRE_BL].dir = BACK;
if(countss>30000) {
cross++;
countss=0;
}
mtc2=true;
- if(cross==1) {
+
+ if(YELLOW) {
+ if(cross==1) {
fast=30;
normal=20;
slow=20;
- }
- if(YELLOW) {
- if(cross==2) {
+ }
+ else if(cross==2) {
mode=21;
countss=0;
cross=0;
}
} else {
- if(cross==1) {
+ if(cross==3) {
mode=21;
countss=0;
cross=0;
@@ -685,33 +699,33 @@
}
break;
case 0:
- motor[TIRE_FR].pwm = fast;
+ motor[TIRE_FR].pwm = fast+20;
motor[TIRE_FR].dir = FOR;
- motor[TIRE_FL].pwm = fast;
+ motor[TIRE_FL].pwm = fast+20;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = fast;
+ motor[TIRE_BR].pwm = fast+20;
motor[TIRE_BR].dir = BACK;
- motor[TIRE_BL].pwm = fast;
+ motor[TIRE_BL].pwm = fast+20;
motor[TIRE_BL].dir = BACK;
mtc2=true;
break;
case 255:
- motor[TIRE_FR].pwm = normal;
+ motor[TIRE_FR].pwm = normal+20;
motor[TIRE_FR].dir = FOR;
- motor[TIRE_FL].pwm = fast;
+ motor[TIRE_FL].pwm = fast+20;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = fast;
+ motor[TIRE_BR].pwm = fast+20;
motor[TIRE_BR].dir = BACK;
- motor[TIRE_BL].pwm = normal;
+ motor[TIRE_BL].pwm = normal+20;
motor[TIRE_BL].dir = BACK;
mtc2=true;
break;
case 253:
motor[TIRE_FR].pwm = 0;
motor[TIRE_FR].dir = FREE;
- motor[TIRE_FL].pwm = slow;
+ motor[TIRE_FL].pwm = slow+20;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = slow;
+ motor[TIRE_BR].pwm = slow+20;
motor[TIRE_BR].dir = BACK;
motor[TIRE_BL].pwm = 0;
motor[TIRE_BL].dir = FREE;
@@ -720,44 +734,44 @@
case 254:
motor[TIRE_FR].pwm = 0;
motor[TIRE_FR].dir = FREE;
- motor[TIRE_FL].pwm = normal;
+ motor[TIRE_FL].pwm = normal+20;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = normal;
+ motor[TIRE_BR].pwm = normal+20;
motor[TIRE_BR].dir = BACK;
motor[TIRE_BL].pwm = 0;
motor[TIRE_BL].dir = FREE;
mtc2=true;
break;
case 1:
- motor[TIRE_FR].pwm = fast;
+ motor[TIRE_FR].pwm = fast+20;
motor[TIRE_FR].dir = FOR;
- motor[TIRE_FL].pwm = slow;
+ motor[TIRE_FL].pwm = slow+20;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = slow;
+ motor[TIRE_BR].pwm = slow+20;
motor[TIRE_BR].dir = BACK;
- motor[TIRE_BL].pwm = fast;
+ motor[TIRE_BL].pwm = fast+20;
motor[TIRE_BL].dir = BACK;
mtc2=true;
break;
case 3:
- motor[TIRE_FR].pwm = slow;
+ motor[TIRE_FR].pwm = slow+20;
motor[TIRE_FR].dir = FOR;
motor[TIRE_FL].pwm = 0;
motor[TIRE_FL].dir = FREE;
motor[TIRE_BR].pwm = 0;
motor[TIRE_BR].dir = FREE;
- motor[TIRE_BL].pwm = slow;
+ motor[TIRE_BL].pwm = slow+20;
motor[TIRE_BL].dir = BACK;
mtc2=true;
break;
case 2:
- motor[TIRE_FR].pwm = normal;
+ motor[TIRE_FR].pwm = normal+20;
motor[TIRE_FR].dir = FOR;
motor[TIRE_FL].pwm = 0;
motor[TIRE_FL].dir = FREE;
motor[TIRE_BR].pwm = 0;
motor[TIRE_BR].dir = FREE;
- motor[TIRE_BL].pwm = normal;
+ motor[TIRE_BL].pwm = normal+20;
motor[TIRE_BL].dir = BACK;
mtc2=true;
break;
@@ -776,7 +790,7 @@
mtc2=false;
break;
case 254:
- motor[TIRE_BL].pwm += 20;
+ motor[TIRE_BL].pwm += 15;
motor[TIRE_FL].pwm = 0;
mtc2=false;
break;
@@ -789,7 +803,7 @@
mtc2=false;
break;
case 2:
- motor[TIRE_FL].pwm += 20;
+ motor[TIRE_FL].pwm += 15;
motor[TIRE_BL].pwm = 0;
mtc2=false;
break;
@@ -813,7 +827,8 @@
normal=40;
slow=20;
}
- } else if(mode==22) {
+ }
+ else if(mode==22) {
if(g[4]==3||g[4]==2) {
motor[TIRE_FR].pwm = 30;
motor[TIRE_FR].dir = FOR;
@@ -925,14 +940,15 @@
mode=23;
countss=0;
}
- } else if(mode==23) {
+ }
+ else if(mode==23) {
switch(g[4]) {
case 98:
- motor[TIRE_FR].pwm = fast;
+ motor[TIRE_FR].pwm = fast-5;
motor[TIRE_FR].dir = BACK;
- motor[TIRE_FL].pwm = fast;
+ motor[TIRE_FL].pwm = fast-5;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = fast;
+ motor[TIRE_BR].pwm = fast-5;
motor[TIRE_BR].dir = BACK;
motor[TIRE_BL].pwm = fast-5;
motor[TIRE_BL].dir = FOR;
@@ -948,11 +964,11 @@
motor[TIRE_BL].dir = FREE;
break;
case 0:
- motor[TIRE_FR].pwm = fast;
+ motor[TIRE_FR].pwm = fast-5;
motor[TIRE_FR].dir = BACK;
- motor[TIRE_FL].pwm = fast;
+ motor[TIRE_FL].pwm = fast-5;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = fast;
+ motor[TIRE_BR].pwm = fast-5;
motor[TIRE_BR].dir = BACK;
motor[TIRE_BL].pwm = fast-5;
motor[TIRE_BL].dir = FOR;
@@ -968,21 +984,21 @@
motor[TIRE_BL].dir = FREE;
break;
case 253:
- motor[TIRE_FR].pwm = fast;
+ motor[TIRE_FR].pwm = fast-5;
motor[TIRE_FR].dir = BACK;
- motor[TIRE_FL].pwm = slow;
+ motor[TIRE_FL].pwm = slow-5;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = slow;
+ motor[TIRE_BR].pwm = slow-5;
motor[TIRE_BR].dir = BACK;
motor[TIRE_BL].pwm = fast-5;
motor[TIRE_BL].dir = FOR;
break;
case 254:
- motor[TIRE_FR].pwm = fast;
+ motor[TIRE_FR].pwm = fast-5;
motor[TIRE_FR].dir = BACK;
- motor[TIRE_FL].pwm = normal;
+ motor[TIRE_FL].pwm = normal-5;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = normal;
+ motor[TIRE_BR].pwm = normal-5;
motor[TIRE_BR].dir = BACK;
motor[TIRE_BL].pwm = fast-5;
motor[TIRE_BL].dir = FOR;
@@ -998,21 +1014,21 @@
motor[TIRE_BL].dir = FREE;
break;
case 3:
- motor[TIRE_FR].pwm = slow;
+ motor[TIRE_FR].pwm = slow-5;
motor[TIRE_FR].dir = BACK;
- motor[TIRE_FL].pwm = fast;
+ motor[TIRE_FL].pwm = fast-5;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = fast;
+ motor[TIRE_BR].pwm = fast-5;
motor[TIRE_BR].dir = BACK;
motor[TIRE_BL].pwm = slow-5;
motor[TIRE_BL].dir = FOR;
break;
case 2:
- motor[TIRE_FR].pwm = normal;
+ motor[TIRE_FR].pwm = normal-5;
motor[TIRE_FR].dir = BACK;
- motor[TIRE_FL].pwm = fast;
+ motor[TIRE_FL].pwm = fast-5;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = fast;
+ motor[TIRE_BR].pwm = fast-5;
motor[TIRE_BR].dir = BACK;
motor[TIRE_BL].pwm = normal-5;
motor[TIRE_BL].dir = FOR;
@@ -1023,9 +1039,9 @@
motor[MOTOR_0].dir = BRAKE;
}
if(g[0]==98) {
- fast=30;
- normal=20;
- slow=20;
+ fast=20;
+ normal=15;
+ slow=10;
if(DOLS==true||UPLS==true) {
motor[MOTOR_0].pwm = 200;
motor[MOTOR_0].dir = BRAKE;
@@ -1040,9 +1056,10 @@
countss=0;
fast=60;
normal=40;
- slow=30;
+ slow=20;
}
- } else if(mode==24) {
+ }
+ else if(mode==24) {
if(DOLS==true||UPLS==true) {
motor[MOTOR_0].pwm = 200;
motor[MOTOR_0].dir = BRAKE;
@@ -1167,16 +1184,17 @@
motor[MOTOR_0].dir = BACK;
}
}
- } else if(mode==25) {
+ }
+ else if(mode==25) {
switch(g[4]) {
case 98:
- motor[TIRE_FR].pwm = fast;
+ motor[TIRE_FR].pwm = 60;
motor[TIRE_FR].dir = BACK;
- motor[TIRE_FL].pwm = fast;
+ motor[TIRE_FL].pwm = 60;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = fast;
+ motor[TIRE_BR].pwm = 60;
motor[TIRE_BR].dir = BACK;
- motor[TIRE_BL].pwm = fast-5;
+ motor[TIRE_BL].pwm = 60;
motor[TIRE_BL].dir = FOR;
break;
case 99:
@@ -1190,13 +1208,13 @@
motor[TIRE_BL].dir = FREE;
break;
case 0:
- motor[TIRE_FR].pwm = fast;
+ motor[TIRE_FR].pwm = 60;
motor[TIRE_FR].dir = BACK;
- motor[TIRE_FL].pwm = fast;
+ motor[TIRE_FL].pwm = 60;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = fast;
+ motor[TIRE_BR].pwm = 60;
motor[TIRE_BR].dir = BACK;
- motor[TIRE_BL].pwm = fast-5;
+ motor[TIRE_BL].pwm = 60;
motor[TIRE_BL].dir = FOR;
break;
case 255:
@@ -1210,23 +1228,23 @@
motor[TIRE_BL].dir = FREE;
break;
case 253:
- motor[TIRE_FR].pwm = fast;
+ motor[TIRE_FR].pwm = 60;
motor[TIRE_FR].dir = BACK;
- motor[TIRE_FL].pwm = slow;
+ motor[TIRE_FL].pwm = 20;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = slow;
+ motor[TIRE_BR].pwm = 20;
motor[TIRE_BR].dir = BACK;
- motor[TIRE_BL].pwm = fast-5;
+ motor[TIRE_BL].pwm = 60;
motor[TIRE_BL].dir = FOR;
break;
case 254:
- motor[TIRE_FR].pwm = fast;
+ motor[TIRE_FR].pwm = 60;
motor[TIRE_FR].dir = BACK;
- motor[TIRE_FL].pwm = normal;
+ motor[TIRE_FL].pwm = 40;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = normal;
+ motor[TIRE_BR].pwm = 40;
motor[TIRE_BR].dir = BACK;
- motor[TIRE_BL].pwm = fast-5;
+ motor[TIRE_BL].pwm = 60;
motor[TIRE_BL].dir = FOR;
break;
case 1:
@@ -1240,31 +1258,32 @@
motor[TIRE_BL].dir = FREE;
break;
case 3:
- motor[TIRE_FR].pwm = slow;
+ motor[TIRE_FR].pwm = 40;
motor[TIRE_FR].dir = BACK;
- motor[TIRE_FL].pwm = fast;
+ motor[TIRE_FL].pwm = 60;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = fast;
+ motor[TIRE_BR].pwm = 60;
motor[TIRE_BR].dir = BACK;
- motor[TIRE_BL].pwm = slow-5;
+ motor[TIRE_BL].pwm = 40;
motor[TIRE_BL].dir = FOR;
break;
case 2:
- motor[TIRE_FR].pwm = normal;
+ motor[TIRE_FR].pwm = 40;
motor[TIRE_FR].dir = BACK;
- motor[TIRE_FL].pwm = fast;
+ motor[TIRE_FL].pwm = 60;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = fast;
+ motor[TIRE_BR].pwm = 60;
motor[TIRE_BR].dir = BACK;
- motor[TIRE_BL].pwm = normal-5;
+ motor[TIRE_BL].pwm = 40;
motor[TIRE_BL].dir = FOR;
break;
}
- if(g[1]==98) {
+ if(g[0]==98) {
mode=31;
}
}
- } else {
+ }
+ else {
if(mode==21) {
motor[TIRE_FR].pwm = 0;
motor[TIRE_FR].dir = FREE;
@@ -2715,7 +2734,7 @@
break;
}
if(g[1]==98) {
- mode=33;
+ mode=31;
}
}
}
@@ -2900,7 +2919,7 @@
}
else if(mode==24) {
if(g[1]==98&&countss>=40000) {
- mode=33;
+ mode=31;
countss=0;
}
switch(g[1]) {
@@ -3060,7 +3079,7 @@
}
}
*/
- if(mode==33) {
+ if(mode==31) {
motor[TIRE_FR].pwm = 255;
motor[TIRE_FR].dir = BRAKE;
motor[TIRE_FL].pwm = 45;