을 이해하지 마십시오 내가 가지고있는 다음 프로그램 ...는 ATmega32 타이머 지연 프로그램
"지속적으로 일부 지연 PORTB의 모든 비트를 전환하는 프로그램을 작성. 사용 타이머 0, 일반 모드,없이 프리스케일러 옵션을 선택합니다. " 은 "TODelay()"기능에
#include….
void T0Delay()
int main()
DDRB= 0xFF;
while (1) {
PORTB=0x55;
T0Delay();
PORTB=0xAA;
T0Delay();
}
void T0Delay()
{
TCNT0=0x20;
TCCR0=0x01;
while ((TIFR&01)==0);
TCCR0=0;
TIFR=0x01;
}
"동안 ((TIFR & 01) == 0)"한 Statment의 기능은 무엇인가? 그리고 왜이 루프 설정은 TCCR0 = 0이고 TIFR = 0x01입니까? 누구나이 코드를 설명 할 수 있습니까?
올바른 반환합니다. 각 플래그는 타이머가 만료되면 1로 설정됩니다. AVR 인터럽트 플래그는 레지스터에 1을 기록하여 클리어 (0으로 설정)됩니다. Thts는'TIFR = 0x01'을위한 것입니다. –