// int mmMmode; // タイマーチェック時 mainmode記憶
// int mmSmode; // submode記憶
// int tmOnFg=false; // タイマーOnのフラグ
// int tmEnd=false // タイマー鳴らした
void TmChkOther() {
if (rptTmFg == true) {
RptTmChk();
if ((rptBb3 == 0) && (rptBb4 == 0)) {
noTone(SUND);
} else if (rptBb3 > 0) {
beebee3();
} else if (rptBb4 > 0) {
beebee4();
}
// 考える
} else {
TmCheck();
if (tmEnd == true) {
tmEnd = false;
tmOnFg = false;
// submode[2]=2;
}
}
}
void TmChkCore() {
if (RTC.read(tm)) {
;
}
krH = 0;
krM = 0;
rmS = tgS - tm.Second;
if (rmS < 0) {
rmS = rmS + 60;
krM = -1;
}
rmM = tgM - tm.Minute + krM;
if (rmM < 0) {
rmM = rmM + 60;
krH = -1;
}
rmH = tgH - tm.Hour + krH;
}
void TmCheck() {
//mmMmode=mainmode;
//mmSmode=submode[mainmode];
if (tmOnFg == true) {
TmChkCore();
if ((rmH == 0 && rmM == 0 && rmS == 0) || (rmH < 0)) {
tmEnd = true;
dispH = rmM;
dispM = rmS;
dispHour();
dispMin();
dispDp();
beebee2();
submode[2] = 2;
}
}
}
void RptTmChk() {
if ((tmOnFg != true) || (rptTmFg != true)) {
goto OutRptTmChk;
}
if (rptBb4 > 0 ) {
rptBb4 = rptBb4 + 1 ; //beebee4 で 鳴らし終わったら rptBb4=0 をする
// TmChkCore();
} else if (rptBb3 > 0 ) {
rptBb3 = 1 + ((rptBb3 + 1) % 120 ); //120 の値は 実験しながら決める ほぼ1秒になるように
TmChkCore();
if (((rmH == 0) && (rmM == 0 ))) { // if (((rmH == 0) && (rmM == 0 )) || (rmH < 0 )) {
if (rmS == 0 ) { // if ((rmS <= 0 ) || (rmH < 0 )) {
rptBb4 = 1;
rptBb3 = 0; // rptBb3 = 0 は rptBb4=1 にしたとき
rptTmReStrt();
}
}
} else {
TmChkCore();
if (((rmH == 0) && (rmM == 0 )) || (rmH < 0 )) {
if ((rmS <= 0 ) || (rmH < 0 )) {
rptBb4 = 1;
rptBb3 = 0;
rptTmReStrt();
} else if (rmS <= 3 ) {
rptBb3 = 1;
rptBb4 = 0;
} else {
rptBb3 = 0;
rptBb4 = 0;
}
}
}
OutRptTmChk: ;
}
//mmMmode=mainmode;
//mmSmode=submode[mainmode];
void beebee() {
int i = 1;
while (i < 100 )
{
for (int ii = 0; ii < 2; ii++) {
if (i < 100) {
tone(SUND, 600,140);
delay(10);
BtnChk();
if (btchk[UPBT - OFST] || btchk[DOWNBT - OFST] || btchk[ONOFFBT - OFST]) {
i = 101;
btchkReset();
goto JMP ;
}
delay(20);
disptemptemp();
}
}
for (int ii = 0; ii < 2; ii++) {
if (i < 100) {
tone(SUND, 400, 140);
delay(10);
BtnChk();
if (btchk[UPBT - OFST] || btchk[DOWNBT - OFST] || btchk[ONOFFBT - OFST]) {
i = 101;
btchkReset();
goto JMP ;
}
delay(20);
disptemptemp();
}
}
for (int ii = 0; ii < 2; ii++) {
if (i < 100) {
tone(SUND, 800, 140);
delay(10);
BtnChk();
if (btchk[UPBT - OFST] || btchk[DOWNBT - OFST] || btchk[ONOFFBT - OFST]) {
i = 101;
btchkReset();
goto JMP ;
}
delay(250);
disptemptemp();
}
}
JMP:
i++ ;
}
alStopTm = m;
}
void beebee2() {
int i = 0;
while (i < 100 )
{
for (int ii = 0; ii < 6; ii++) {
if (i < 100) {
tone(SUND, 600 + ii * 30, 50);
//delay(50);
BtnChk();
if (btchk[UPBT - OFST] || btchk[DOWNBT - OFST] || btchk[ONOFFBT - OFST]) {
i = 101; //while を抜ける
btchkReset();
goto JMP ;
}
delay(150);
disptemptemp();
}
}
for (int ii = 0; ii < 6; ii++) {
if (i < 100) {
tone(SUND, 400 + ii * 15, 75);
//delay(50);
BtnChk();
if (btchk[UPBT - OFST] || btchk[DOWNBT - OFST] || btchk[ONOFFBT - OFST]) {
i = 101;
btchkReset();
goto JMP ;
}
delay(150);
disptemptemp();
}
}
for (int ii = 0; ii < 6; ii++) {
if (i < 100) {
tone(SUND, 800 - ii * 30, 130);
//delay(50);
BtnChk();
if (btchk[UPBT - OFST] || btchk[DOWNBT - OFST] || btchk[ONOFFBT - OFST]) {
i = 101;
btchkReset();
goto JMP ;
}
delay(150);
disptemptemp();
}
}
JMP:
i++ ;
}
alStopTm = m;
}
void beebee3() {
if (rptBb3 < 25) {
tone(SUND, 500);
} else {
noTone(SUND);
}
}
void beebee4() {
if (rptBb4 < 65) {
tone(SUND, 1000);
} else {
noTone(SUND);
rptBb4 = 0;
}
}
void snz() {
int snzFxTm = 2; //2-3分間隔で鳴る ///////////////////////////////////////
//snzFg=true;
//dispD = mainmode;
alPassTm = m;
dispD = 0;
// while (snzFg && (alPassTm - alStopTm <snzFxTm)){
if (RTC.read(tm)) {
;
}
h = tm.Hour;
m = tm.Minute;
sd = tm.Second;
alPassTm = m;
if (alPassTm < alStopTm ) {
alPassTm = alPassTm + 60;
}
if (snzFg == false) {
btchkReset();
mainmode = 0;
submode[mainmode] = 0;
alFg = false;
AlL = AlLed[alFg];
//digitalWrite(ALLED, alFg);
} else if ((alPassTm - alStopTm ) > snzFxTm) {
bbflg = 1 - bbflg;
if (bbflg == 0) {
beebee();
} else {
beebee2();
}
/* if (random(0,2) == 0){
beebee();
} else{
beebee2();
} */
snzFg = true;
kReset();
} else {
dispH = h;
if (dispH / 10 == 0) {
tmpfg = LOW;
}
else {
tmpfg = HIGH;
}
dispM = m;
snzI++;
if (snzI > snzIMax) {
snzI = 0;
snzDspFg = ! snzDspFg;
}
DispSnz();
/*
if (snzDspFg) {
dispHour();
dispMin();
dispDp(); // ok
} else {
delay(25); ////////////////////////////////25
}
*/
BtnChk();
if (k[0] == false) {
if (btchk[ONOFFBT - OFST]) {
k[0] = true;
snzDspIdx = 3;
}
} else if (k[1] == false) {
if (btchk[DOWNBT - OFST]) {
k[1] = true;
snzDspIdx = 4;
}
} else if (k[2] == false) {
if (btchk[UPBT - OFST]) {
k[2] = true;
snzDspIdx = 2;
}
} else if (k[3] == false) {
if (btchk[ONOFFBT - OFST]) {
k[3] = true;
snzDspIdx = 3;
}
} else if (k[4] == false) {
if (btchk[DOWNBT - OFST]) {
k[4] = true;
snzDspIdx = 4;
}
} else if ( k[5] == false) {
if (btchk[UPBT - OFST]) {
k[5] = true;
snzDspIdx = 2;
}
} else if (k[6] == false) {
if (btchk[ONOFFBT - OFST]) {
k[6] = true;
snzDspIdx = 3;
}
} else if (k[7] == false) {
if (btchk[DOWNBT - OFST]) {
k[7] = true;
snzDspIdx = 4;
}
} else if (k[8] == false) {
if (btchk[UPBT - OFST]) {
k[8] = true;
snzDspIdx = 2;
}
} else if (k[8] == true) {
alFg = false;
AlL = AlLed[alFg];
//digitalWrite(ALLED, alFg);
snzFg = false;
}
btchkReset();
} //while
} //if (snzFg )
void btchkReset() {
btchk[ONOFFBT - OFST] = false;
btchk[UPBT - OFST] = false;
btchk[DOWNBT - OFST] = false;
}
void kReset() {
for (int i = 0 ; i < 9; i++) {
k[i] = false;
}
snzDspIdx = 2;
}
void dispMin(){
PORTB = Seg[dispM / 10] OPRT DpA;
digitalWrite(LED3, HIGH);
delay(3);
digitalWrite(LED3, LOW);
PORTB = Seg[dispM % 10] OPRT DpA;
digitalWrite(LED4, HIGH);
delay(3);
digitalWrite(LED4, LOW);
}
void dispHour(){
if (upDisp) {
PORTB = Seg[dispH / 10] OPRT DpA;
digitalWrite(LED1, tmpfg);
delay(3);
digitalWrite(LED1, LOW);
PORTB = Seg[dispH % 10] OPRT DpA;
digitalWrite(LED2, HIGH);
delay(3);
digitalWrite(LED2, LOW);
} else {
delay(6);
}
}
void dispDp(){
DpD = DpDisp[dispD];
DpDAO = DpD OPRT AlL OPRT OpL;
PORTB = DpDAO;
digitalWrite(LEDDP, HIGH); /////////////////////////////
delay(3);
digitalWrite(LEDDP, LOW);
}
void dispMinOff(){
digitalWrite(LED3, LOW);
delay(3);
digitalWrite(LED4, LOW);
delay(3);
}
void dispHourOff(){
digitalWrite(LED1, LOW);
delay(3);
digitalWrite(LED2, LOW);
delay(3);
}
void dispDpOff()
{
digitalWrite(LEDDP, LOW);
delay(3);
}
void disp1(){
PORTB = Seg[dp1] OPRT DpA;
digitalWrite(LED1, HIGH);
delay(3);
digitalWrite(LED1, LOW);
}
void disp2(){
PORTB = Seg[dp2] OPRT DpA;
digitalWrite(LED2, HIGH);
delay(3);
digitalWrite(LED2, LOW);
}
void disp3(){
PORTB = Seg[dp3] OPRT DpA;
digitalWrite(LED3, HIGH);
delay(3);
digitalWrite(LED3, LOW);
}
void disp4(){
PORTB = Seg[dp4] OPRT DpA;
digitalWrite(LED4, HIGH);
delay(3);
digitalWrite(LED4, LOW);
}
void disptemptemp() {
if (snzFg == true) {
if (RTC.read(tm)) {
yr = tm.Year + 1970 - 2000 ; //1970年が基準でRTCの内部で処理されている
mh = tm.Month;
dy = tm.Day;
h = tm.Hour;
m = tm.Minute;
sd = tm.Second;
//普通のとき
dispH = h;
if (dispH / 10 == 0) {
tmpfg = LOW;
}
else {
tmpfg = HIGH;
}
dispM = m;
}
}
for (int i = 0; i < 2; i++) {
dispHour();
dispMin();
dispDp();
// BtnChk();
}
}
void DispSnz(){
if (snzDspFg) {
dispHour();
dispMin();
dispDp(); // ok
} else{
dispDp();
//delay(8);
switch(snzDspIdx){
case 2:
//for (int i = 0; i < 2; i++) {
if ((snzI>9) && (snzI<12)) {
PORTB = Seg[dispH % 10] OPRT DpA;
digitalWrite(LED2, HIGH);
delay(5);
digitalWrite(LED2, LOW);
} else{
//digitalWrite(LED2, LOW);
delay(15);
}
//}
break;
case 3:
//for (int i = 0; i < 2; i++) {
if ((snzI>9) && (snzI<12)) {
PORTB = Seg[dispM / 10] OPRT DpA;
digitalWrite(LED3, HIGH);
delay(5);
digitalWrite(LED3, LOW);
} else{
//digitalWrite(LED3, LOW);
delay(15);
}
//}
break;
case 4:
//for (int i = 0; i < 2; i++) {
if ((snzI>9) && (snzI<12)) {
PORTB = Seg[dispM % 10] OPRT DpA;
digitalWrite(LED4, HIGH);
delay(5);
digitalWrite(LED4, LOW);
} else{
//digitalWrite(LED4, LOW);
delay(15);
}
//}
break;
}
}
}
void dispHourTest(){
for (int jjj = 0; jjj < 20; jjj++) {
for (int i = 0; i < 100; i++) {
PORTB = Seg[jjj] OPRT DpA; // + plsDp;
digitalWrite(LED1, true);
delay(3);
digitalWrite(LED1, LOW);
PORTB = Seg[0] OPRT DpA;
digitalWrite(LED2, HIGH);
delay(3);
digitalWrite(LED2, LOW);
}
}
}
bool getTime(const char *str){
int Hour, Min, Sec;
if (sscanf(str, "%d:%d:%d", &Hour, &Min, &Sec) != 3) return false;
tm.Hour = Hour;
tm.Minute = Min;
tm.Second = Sec + 15;
return true;
}
bool getDate(const char *str){
char Month[12];
int Day, Year;
uint8_t monthIndex;
if (sscanf(str, "%s %d %d", Month, &Day, &Year) != 3) return false;
// for (monthIndex = 0; monthIndex < 12; monthIndex++) {
// if (strcmp(Month, monthName[monthIndex]) == 0) break;
// }
if (monthIndex >= 12) return false;
tm.Day = Day;
tm.Month = monthIndex + 1;
tm.Year = CalendarYrToTm(Year);
return true;
}
void intpros0(){
//Mode ボタンを押したとき 割り込み
nowTimeM = millis();
//conChk = digitalRead(0);
checkMainM();
}
void intpros1(){
//Set ボタンを押したとき 割り込み
nowTimeS = millis();
//conChk = digitalRead(1);
checkMainS();
}
void checkMainM() {
if (nowTimeM - prevTimeM > timeChat) {
if (conM == LOW ) {
chMode();
}
conM = !conM;
}
prevTimeM = nowTimeM;
}
void checkMainS() {
if (nowTimeS - prevTimeS > timeChat) {
if (conS == LOW ) {
chSet();
}
conS = !conS;
}
prevTimeS = nowTimeS;
}
void chMode() {
if (dspF > 10) {
modebtFg = true;
// dspF=2;
} else if (snzFg == false) {
modebtFg = true;
if ((mainmode == 0) || (mainmode == 1)) {
submode[mainmode] = 0;
}
mainmode = (mainmode + 1) % 4;
for (int i = 0; i < timesModeSet; i++) {
PORTB = Seg[mainmode] OPRT DpA;
digitalWrite(LED1, HIGH);
delay(5);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
PORTB = Seg[submode[mainmode]] OPRT DpA;
digitalWrite(LED3, HIGH);
delay(5);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
//PORTD = Seg[10];
PORTB = Seg[10] OPRT DpA;
digitalWrite(LEDDP, LOW);
}
} else {
;
}
rptBb3=0;
rptBb4=0;
noTone(SUND);
}
void chSet() {
if (dspF > 10) {
dspF = dspF + 1;
setbtFg = true;
} else if (snzFg == false) {
setbtFg = true;
switch (mainmode) {
case 0:
submode[mainmode] = (submode[mainmode] + 1) % 7;
break;
case 1:
submode[mainmode] = (submode[mainmode] + 1) % 2;
break;
case 2:
submode[mainmode] = (submode[mainmode] + 1) % 4;
break;
case 3:
submode[mainmode] = 0;
//submode[mainmode]=(submode[mainmode] + 1) % 3;
break;
}
// if (mainmode !=1){
for (int i = 0; i < timesModeSet; i++) {
PORTB = Seg[mainmode] OPRT DpA;
digitalWrite(LED1, HIGH);
delay(5);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
PORTB = Seg[submode[mainmode]] OPRT DpA;
digitalWrite(LED3, HIGH);
delay(5);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
// PORTB = Seg[10];
// digitalWrite(LEDDP, HIGH);
// delay(5);
// digitalWrite(LEDDP, LOW);
}
// }
} else {
}
}
void setTime() {
byte hour = (setHour / 10) * 0x10 + (setHour % 10);
byte minute = (setMin / 10) * 0x10 + (setMin % 10);
byte sec = 0;
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(0x00);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 3);
byte r_sec = Wire.read();
byte r_minute = Wire.read();
byte r_hour = Wire.read();
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(0x00);
Wire.write((r_sec & 0x80) | sec);
Wire.write(minute);
Wire.write((r_hour & 0x40) | hour);
Wire.endTransmission();
}
void setTimeSP() {
byte hour = (setHour / 10) * 0x10 + (setHour % 10);
byte minute = (setMin / 10) * 0x10 + (setMin % 10);
byte sec = (setScnd / 10) * 0x10 + (setScnd % 10);
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(0x00);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 3);
byte r_sec = Wire.read();
byte r_minute = Wire.read();
byte r_hour = Wire.read();
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(0x00);
Wire.write((r_sec & 0x80) | sec);
Wire.write(minute);
Wire.write((r_hour & 0x40) | hour);
Wire.endTransmission();
}
void setYMD() {
byte year;
byte month = (setMonth / 10) * 0x10 + (setMonth % 10);
byte date = (setDay / 10) * 0x10 + (setDay % 10);
byte day_of_week = 0; // ダミー
year = ((setYear % 100) / 10) * 0x10 + (setYear % 10);
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(0x03);
Wire.write(day_of_week);
Wire.write(date);
Wire.write(month);
Wire.write(year);
Wire.endTransmission();
}
void BtnChk() {
//ボタン押されていない HIGH 押されている LOW
//元の状態保持 btcon 押されていない HIGH 押されている LOW
//信号あり btchk あり true なし false
int once = 0 ;
int pstm = 0; //経過時間をカウント
pstm = 0;
//OpL = OpLed[LEDOFF];
//digitalWrite(OPLED, LEDOFF);
for (byte i = ONOFFBT; i <= UPBT; i++) {
byte val;
val = digitalRead(i); // 押されていなかった//押された
if (btcon[i - OFST] == HIGH && val == LOW ) {
btchk[i - OFST] = true;
// delay(timeChat);
}
btcon[i - OFST] = val; //LOW=0 HIGH=1 true=1 false=0 !false=1 ここまでただのチェック
if (btchk[i - OFST] == true) { //ここから長押しのチェック 20210709
while ((val == LOW) && (pstm < 3000)) {
val = digitalRead(i);
if (val == LOW) {
pstm++;
delay(1);
} else {
pstm = 0; /* スイッチを離したら時間リセット */
}
}
if (pstm >= 2999 ) {
pstm = 0 ;
btLong[i - OFST] = true;
} else {
pstm = 0 ;
btLong[i - OFST] = false;
}
}
}
}
void clcTime() {
int km = 0;
int kh = 0;
int kd = 0;
clcS = ( clcS1 + clcS2) % 60;
km = ( clcS1 + clcS2) / 60;
if (clcS < 0) {
km--;
clcS = clcS + 60;
}
clcM = (clcM1 + clcM2 + km) % 60;
kh = (clcM1 + clcM2 + km) / 60;
if (clcM < 0) {
kh--;
clcM = clcM + 60;
}
clcH = (clcH1 + clcH2 + kh) % 24;
kd = (clcH1 + clcH2 + kh) / 24;
if (clcH < 0) {
kd--;
clcH = clcH + 24;
}
clcD = kd;
}
void compTime() {
int km = 0;
int kh = 0;
int kd = 0;
clcS = clcS1 - clcS2;
if (clcS < 0) {
km++;
} else if (clcS > 59) {
km--;
}
clcM = clcM1 - clcM2 - km;
if (clcM < 0) {
kh++;
} else if (clcM > 59) {
kh--;
}
clcH = clcH1 - clcH2 - kh;
if (clcH < 0) {
kd++;
} else if (clcH > 23) {
kd--;
}
clcD = (-1) * kd;
}
void setAdjT() {
int tmpK;
if (adjVlue == 0) {
adjSetF = false;
} else {
adjRmS = adjTS;
adjRmM = adjTM;
adjRmH = adjTH;
adjRmD = adjTD;
adjTgS = sd + adjTS;
if (adjTgS > 59) {
tmpK = 1;
adjTgS = adjTgS - 60;
} else {
tmpK = 0;
}
/* if ((adjTgS + adjVlue)>60){ // 調整したとき、繰り上がり、繰り下がりを避けるため
adjTgS=adjTgS-adjVlue;
} else if ((adjTgS + adjVlue)<0){
adjTgS=adjTgS-adjVlue;
} */
adjTgM = m + adjTM + tmpK;
if (adjTgM > 59) {
tmpK = 1;
adjTgM = adjTgM - 60;
} else {
tmpK = 0;
}
adjTgH = h + adjTH + tmpK;
if (adjTgH > 23) {
adjTgH = adjTgH - 24;
adjCntD = adjTD + 1;
} else {
tmpK = 0;
}
adjSetF = true;
}
}
void adjChk() {
if (adjSetF == false) {
;
} else { //adjSetF==true
if (adjF == true) { //既に設定済み adjDo はまだ
;
} else { //adjSetF==true && adjF==false
if (adjCntD > 0) {
adjF = false;
if (dy != prvD) {
adjCntD--;
prvD = dy;
// adjF=false;
}
} else { //adjCntD==0 のとき
clcS1 = adjTgS;
clcS2 = sd;
clcM1 = adjTgM;
clcM2 = m;
clcH1 = adjTgH;
clcH2 = h;
compTime();
if ((clcD < 0) || ((adjTgH == h) && (adjTgM == m) && (adjTgS == sd))) {
adjF = true;
adjSetF = false;
} else {
adjF = false;
}
}
}
}
}
void adjDo() {
setScnd = sd + adjVlue; // 繰り上がり、繰り下がりを避ける処理済み
setMin = m ;
setHour = h;
setTimeSP();
adjF = false;
adjSetF = false;
setAdjT();
}
void rptTmPre() {
if (rptTmFg == true) {
rptDpIx = ( rptDpIx + 1 ) % 40;
if (rptDpIx > 20) {
dispD = 1;
} else {
dispD = 2;
}
}
}
void rptTmReStrt() {
rmS = 0;
rmM = 0;
rmH = 0;
//rptBb3 = 0;
//rptBb4 = 0;
// if (btchk[ONOFFBT - OFST]) {
// submode[mainmode] = 4;
if (RTC.read(tm)) {
;
}
nowH = tm.Hour;
nowM = tm.Minute;
nowS = tm.Second;
tgS = nowS + tmrS;
if (tgS > 59) {
krM = tgS / 60;
tgS = tgS % 60;
} else {
krM = 0;
}
tgM = nowM + tmrM + krM;
if (tgM > 59) {
krH = tgM / 60;
tgM = tgM % 60;
} else {
krH = 0;
}
tgH = nowH + tmrH + krH;
TmChkCore();
}
void resetOEproc(int x){
mMmainmode = mainmode;
mMsubmode = submode[mainmode];
RTC.read(tm);
oeSH = tm.Hour; //長時間表示そのまま、何かのエラー その時表示を時計に戻す用 始まり時刻
oeSM = tm.Minute;
oeSS = tm.Second;
oeOfS = oeSS; //時計表示に戻す時刻 set
oeOfM = oeSM + x;
if ( oeOfM > 59 ){
oeOfM = oeOfM - 60;
oeOfH = oeSH + 1;
if (oeOfH == 24){
oeOfH = 0;
}
} else {
oeOfH = oeSH;
}
}
void TempChk(){
for (int i=0;i<3; i++){
sensors.requestTemperatures();
TempValue=(sensors.getTempCByIndex(0)) * 10;
}
for (int i = 0;i<200; i++){
TempDisp();
}
}
void TempDisp(){
int t1;
int t2;
int t3;
float tt;
tt = TempValue; // (sensors.getTempCByIndex(0)) * 10;
t1 = ((abs(tt)) / 100);
t2 = ((abs(tt) - (t1 * 100)) /10);
t3 = ((abs(tt) - (t1 * 100)-(t2 * 10)) );
DpA = DpAdd[0];
if (tt < 0){
dp1=dispChMinus;
disp1();
}
if (t1>0){
dp2=t1;
disp2();
}
dp3=t2;
DpA = DpAdd[1];
disp3();
DpA = DpAdd[0];
dp4=t3;
disp4();
}
void chkDoOEproc(int x){
//Serial.print("mainmode : ");
//Serial.print(mainmode);
//Serial.print(" -> ");
//Serial.print(mMmainmode);
//Serial.print(" submode : ");
//Serial.print(submode[mainmode]);
//Serial.print(" -> ");
//Serial.println(mMsubmode);
if ( ( mMmainmode == mainmode ) and ( mMsubmode == submode[mainmode] ) ){
RTC.read(tm);
if ( ( oeOfM <= tm.Minute ) and ( oeOfH <= tm.Hour ) and ( oeOfS <= tm.Second ) ){
mainmode = 0;
submode[mainmode] = 0;
}
} else {
resetOEproc(x);
}
}
0コメント