13640
2016-05-09 11:22:39
1
void main(void)
{
int i;
/* 입출력 설정 */
TRISB &= ~0xf0; // 초기화 안된 상황이기에 power-on reset시에 설정된 값에서 TRISB = TRISB & ~0xf0; 하여 하위 4개 비트에 대해서만 설정
PORTB &= ~0xf0; // 아마도.. 출력방향과 출력은 0x0F 가 되도록 할 것으로 추측됨(~0xF0는 0x0F0의 negate로 비트단위로 0과 1이 바뀝니다)
// 개인적으로는 TRISB = 0x0F; PORTB= 0x0F;가 이해하기 쉬울거라 봅니다.
for(i=0; i<16; i++){
PORTB &= ~0xf0; // PORTB = (PORTB & 0x0F); PORTB가 오버플로우시 하위 4 비트만 살려줌
PORTB |= ???? // PORTB = PORTB | (?); PORTB에 어떤 값을 비트 연산 OR로 합니다.
delay_ms(300); // 300ms 마다 바뀌도록
}
PORTB &= ~0xf0; // PORTB = PORTB & 0x0F; 하위 4비트만 살려줌
while(1){
; /* Do nothing!! */
// 프로그램이 종료되지 않고 멈춰있도록
}
}