2개의 스위치가 각각 led가 한 방향으로 내려가거나, 올라가게 하도록 하고,
스위치 모두 내렸을 때는 반드시 0xef LED부터 아래로 순차적으로 내려가게 하도록 하려 합니다.
여기서 질문 드리고 싶은점은, 초기값을 0xef로 두면 불빛이 0xef만 빛나고 아래로 내려가진 않고,
제가 한 대로 하면 led가 모두 꺼졌을 때만 oxef에서 시작하여 순차적으로 내려갑니다.
//당연히 if(LED==0xff) LED=0xfe; 로 했기 때문이지만, 이걸 빼고 뭘 넣어야 될지 몰라서..
요점은 어떤 변수를 설정하여 초기값을 주어야 스위치 2개를 모두 내렸을 때 0xef 부터 led가 작동할까요?
변수를 설정하여 초기값을 줘야할 것 같은데.. 감이 안잡히네요 ㅠ
unsigned char LED;
void delay(unsigned long i)
{
while (--i);
}
void SHIFTL()
{
if(LED==0xff) LED=0xfe;
else
{
LED = (LED<<1) | 0x01;
if(LED==0xff) LED = 0xfe;
}
}
void SHIFTR()
{
if(LED==0xff) LED=0x7f;
else
{
LED = (LED>>1) | 0x80;
if(LED==0xff) LED = 0x7f;
}
}
void SHIFTR2()
{
if(LED==0xff) LED=0xef;
else
{
LED = (LED<<1) | 0x01;
if(LED==0xff) LED = 0xfe;
}
}