1. 비교일치가 발생하면 OCF0가 1이 된건데, 그 상태에서 while을 빠져나온건데 굳이 TIFR = 0x02를 다시 설정 안하더라도, 이미 TIFR = 0x02 가 되있는 거 아닌가요?? TIFR = 0x00; 로 해야 다시 비교일치 발생했을 때 OCF0가 또 1이 되는거 아닌가요. 2. TIFR = 0x02면 다시 while(1) 이거 반복하니깐 while((0x02 & 0x02) == 0); 이게 항상 거짓이 되는거 아닌가요? 답답한 질문해서 죄송합니다 .. .
이 전에 질문하신 것 포함해서 while((---- & ----)==0);는 해당 비트의 상태를 체크하기 위해 해당 비트만 비트 마스킹 하는 개념입니다. 다른 비트의 상태에는 관심이 없으니까요.... 그리고, CTC 모드에서 OC0 Toggle을 사용하는 경우, OCF0 flag 확인 및 Clear가 필요 없습니다. 제가 업무를 하다보니 바로 답변을 못했습니다.