前の状態を保持するプログラム
Posted: 2015年10月05日(月) 16:14
直前の状態を保持するプログラムについて教えてください。
RB0: SW1 (SWは、ONで0入力)
RB1: SW2 (SWは、ONで0入力)
SW1、SW2両方がONされたとき、case0の処理
SW1のみONされたとき、case1の処理
SW2のみONされたとき、case2の処理
SW1,SW2両方OFFのとき、つまり、case3のとき、
1つ前の状態を出力したいのですが、プログラムが分かりません。
1つ前の動作で、SW1のみONされていたなら、
次に、SW1,SW2の両方がOFFになったときは、SW1のみONされていたときと同じ状態を出力する。
→つまり、前の状態を保持するプログラムを記述したいです。
素人質問で申し訳ありませんが、教えていただけると助かります。
void main(void){
int i,j,k;
int s;
i=0;
j=0;
k=0;
delay_ms(100);
while(1){
s = PORTB & 0x03;
switch(s){
case 0: LATCbits.LATC4 = 0;
LATCbits.LATC5 = 0;
i=1;
break;
case 1: LATCbits.LATC4 = 0;
LATCbits.LATC5 = 1;
j=1;
break;
case 2: LATCbits.LATC4 = 1;
LATCbits.LATC5 = 0;
k=1;
break;
case 3:
if (i=1){
LATCbits.LATC4 = 1;
LATCbits.LATC5 = 1;
i=0;
}
else if (j=1){
LATCbits.LATC4 = 0;
LATCbits.LATC5 = 1;
j=0;
}
else if (k=1){
LATCbits.LATC4 = 1;
LATCbits.LATC5 = 0;
k=0;
}
break;
default:break;
}
}
}
RB0: SW1 (SWは、ONで0入力)
RB1: SW2 (SWは、ONで0入力)
SW1、SW2両方がONされたとき、case0の処理
SW1のみONされたとき、case1の処理
SW2のみONされたとき、case2の処理
SW1,SW2両方OFFのとき、つまり、case3のとき、
1つ前の状態を出力したいのですが、プログラムが分かりません。
1つ前の動作で、SW1のみONされていたなら、
次に、SW1,SW2の両方がOFFになったときは、SW1のみONされていたときと同じ状態を出力する。
→つまり、前の状態を保持するプログラムを記述したいです。
素人質問で申し訳ありませんが、教えていただけると助かります。
void main(void){
int i,j,k;
int s;
i=0;
j=0;
k=0;
delay_ms(100);
while(1){
s = PORTB & 0x03;
switch(s){
case 0: LATCbits.LATC4 = 0;
LATCbits.LATC5 = 0;
i=1;
break;
case 1: LATCbits.LATC4 = 0;
LATCbits.LATC5 = 1;
j=1;
break;
case 2: LATCbits.LATC4 = 1;
LATCbits.LATC5 = 0;
k=1;
break;
case 3:
if (i=1){
LATCbits.LATC4 = 1;
LATCbits.LATC5 = 1;
i=0;
}
else if (j=1){
LATCbits.LATC4 = 0;
LATCbits.LATC5 = 1;
j=0;
}
else if (k=1){
LATCbits.LATC4 = 1;
LATCbits.LATC5 = 0;
k=0;
}
break;
default:break;
}
}
}