BASIC4MCU | AVR | 포트 | 74HC595 출력 포트 확장
페이지 정보
작성자 키트 작성일2017-08-25 17:13 조회3,381회 댓글0건본문
for(i=31;i>=0;i--){ DATA=(0x80000000>>i)&1;
i가 31부터 시작해서 1씩 감소하는 것에 주의 하시고요
0x80000000 이 값을 595로 출력하기 위한 연산입니다.
1000 0000 0000 0000 0000 0000 0000 0000 32비트라서 기네요..
i가 31일 때 0x80000000>>31 이렇게 되겠죠?
1000 0000 0000 0000 0000 0000 0000 0000 이 값이 31 우측으로 시프트하면 비트31이 비트0이 됩니다.
0000 0000 0000 0000 0000 0000 0000 0001 이렇게 말이죠..
이 값을 &1 연산하면 비트0만 &연산 하는 것이라서
비트0이 1이면 1이남고
비트0이 0이면 0이남습니다.
결국 DATA에는 비트31이 출력 되는 것입니다.
그 다음에
i가 30 일 때는 1000 0000 0000 0000 0000 0000 0000 0000 비트30이 DATA에 출력되고
i가 29 일 때는 1000 0000 0000 0000 0000 0000 0000 0000 비트29이 DATA에 출력되고
i가 28 일 때는 1000 0000 0000 0000 0000 0000 0000 0000 비트28이 DATA에 출력되고
.
.
i가 1 일 때는 1000 0000 0000 0000 0000 0000 0000 0000 비트1이 DATA에 출력되고
i가 0 일 때는 1000 0000 0000 0000 0000 0000 0000 0000 비트0이 DATA에 출력됩니다.
댓글 0
조회수 3,381등록된 댓글이 없습니다.