MSP-EXP430G2가 Code Composer Studio를 사용하여 LED를 깜박이는 데 필요한 튜토리얼 프로그램을 시험해보고 있습니다. 원래는 점멸을위한 무한 루프했다 :내부 루프가 무시됩니다.
for(;;)
// This empty for-loop will cause the lines of code within to loop infinitely
{
P1OUT ^= 0x01;
// Toggle P1.0 using exclusive-OR operation (^=)
// P1OUT is another register which holds the status of the LED.
// '1' specifies that it's ON or HIGH, while '0' specifies that it's OFF or LOW
// Since our LED is tied to P1.0, we will toggle the 0 bit of the P1OUT register
for(i=0; i< 20000; i++);
// Delay between LED toggles. This for-loop will run until the condition is met.
//In this case, it will loop until the variable i increments to 20000.
}
}
이 복사했고 튜토리얼에서 붙여 넣기를 의도 한대로 일했다. 그때 나는 그것이 유한 루프로 얻을 수 있는지 확인하기 위해 싶어서에 for 루프를 변경 : J와
for (j = 0; j<10; j++)
이전 코드에서 선언했다. 그러나 LED가 더 이상 깜박이지 않으며 디버거로 프로그램을 실행할 때 for(i=0; i< 20000; i++);
행을 완전히 건너 뜁니다. 이 경우에만 j < 조건을 설정할 때 발생하지만 j> -1로 설정하면 발생하지 않습니다. 10에서 0으로 감소하는 루프를 만들 때도 같은 문제가 발생합니다. 그러면 루프가 유한 한 경우에만 발생한다고 생각하게 만듭니다.
나는 분명한 뭔가를 놓치고 있습니까?
_이 질문은 더 이상 재생할 수 없거나 간단한 입력 오류로 인해 발생한 것입니다. 비슷한 질문이 여기에 주제 일지 모르지만, 이것은 미래 독자를 돕지 않을 방법으로 해결되었습니다. 게시하기 전에 문제를 재현하는 데 필요한 가장 짧은 프로그램을 확인하고 면밀히 검사하여 피할 수 있습니다. _ –
_이 경우 변수 i가 20000으로 증가 할 때까지 반복됩니다 ._ 어떻게됩니까? –
@WeatherVane 네, 그 루프는 깜박일 사이의 지연을 설정합니다. 나는 LED가 깜박 거리는 횟수를 지시하는 초기 (;;)를 대체하는 것을 의미했다. –