2017-03-27 7 views
0

그래서 거대한 interweb을보고 난 후에 이것에 대한 답을 찾을 수 없었습니다. 이 같은 기록되지 않습니다 if(P4IN & GPIO_PIN1?0:1) 있도록C 조건부 문을 if/else로 변환하는 방법 if 조건 내에서 선언 된 경우?

if(P4IN & GPIO_PIN1?0:1){ 
     if (state==1){ 
      state = 0; 
      //Wait for this state to pass -- ends up saving the current state on button press. 
      while (counter < 10000){ 
       counter++; 
      } 
     } 
     else{ 
      state = 1; 
      while (counter < 10000){ 
       counter++; 
      } 
     } 
    } 

어떻게이 다시 작성합니다 :

나는이 코드 조각을 말한다. 여분의 if/else 조건을 만들거나 MSP432 용으로이 코드 블록을 확장해도 상관이 없습니다.

시간 내 주셔서 감사합니다.

+7

'경우 (P4IN 및 GPIO_PIN1 0 : 1)'->'경우 (! (P4IN & GPIO_PIN1))' –

+1

...하고 (아마도) 입력 핀이 외부 스위치에 연결되어 있다면 디 바운싱을 처리해야합니다. – LPs

+2

'&'는 3 진보다 높은 우선 순위를 가지므로 원래 문장은 일부 괄호를 사용하여 더 명확하게 나타낼 수 있습니다. – stark

답변

7

이에게 모든 일을 단순화 할 수 있습니다

if (!(P4IN & GPIO_PIN1)) { 
    state = !state; 

    while (counter < 10000) { 
    counter++; 
    } 
} 
+2

... 또는'state^= 1;'....;) – LPs