2012-01-19 10 views
1

그래서 LED와 버튼이 있습니다.8051/C : 버튼을 누르면 깜박임 모드로 들어가고, 다시 또는 30 초 후에 종료합니다.

버튼을 누르면 LED가 깜박이기 시작합니다. 30 초 후에 깜박임을 멈추거나 버튼을 다시 누르면 중지됩니다.

깜박이는 상태를 입력하고 30 초 후에 그대로 두었습니다. 그러나 버튼을 눌러 언제든지 남겨 두는 법을 모르겠습니다. 도움을 주시면 감사하겠습니다.

while(1) 
{ 

    if(button is pressed) 
    { 
     for(i=0, i<60, i++) 
     { 
      toggleLED(); 
      wait(500ms); 
     } 
    } 
} 

답변

0

당신은 거의 다 있습니다 : 당신은 LED를 점멸 사이의 간격으로 버튼을보고 추가해야 그

if(button is pressed) 
{ 
    for(i=0, i<60, i++) 
    { 
     toggleLED(); 
     wait(500ms); 
     if (button is pressed) 
     { 
      turnLedOff(); 
      break; 
     } 
    } 
} 
+0

생각. 그러나 그것은 작동하지 않습니다. 루프에서 빠져 나오면 버튼이 여전히 눌려 있기 때문에 다시 들어갈 것입니다. – tzippy

+0

20 초를 기다렸다가 다시 버튼을 누르면 루프에서 빠져 나오지 않을 수도 있습니다. LED가 10 초 후에 깜박임을 멈추면 루프에서 빠져 나오지 않습니다. 30 초 후에 깜박임이 멈 추면 다시 루프에 들어갑니다. 프로그램이 루프로 돌아 간다면, 'break'전에 잠깐 기다려서 (예를 들어 20ms) 추가하여 수정할 수 있습니다. – dasblinkenlight

+0

고마워! 그것을 시도하고 appearently 중단 나던 작품. 버튼을 다시 누르면 남은 시간 동안 30 초 동안 계속 깜박이지 않습니다. 이상한 ... – tzippy