BASIC4MCU | C언어 | C언어 | 비트마스크
페이지 정보
작성자 키트 작성일2017-09-12 11:40 조회1,512회 댓글0건본문
특정 비트를 1로 만들기 위해서
특정 비트를 0으로 만들기 위해서
비트 마스크를 사용 합니다.
특정 비트는 1개가 될 수도 있고 여러개가 될 수도 있습니다.
원리는 AND 와 OR 연산 입니다.
(너무 쉬우니 AND 와 OR 연산 설명 까지는 안 하겠습니다.)
다른 비트는 안 건드리고 (비트2,비트3) 2개를 1로 만들 때에
a = a | 0b00001100;
다른 비트는 안 건드리고 (비트2,비트3) 2개를 0으로 만들 때에
a = a & 0b11110011;
예제로는
특정 비트만 출력을 하기 위해서 사용 합니다.
다른 비트는 안 건드리고 비트0을 1로
PORTA|=1;
다른 비트는 안 건드리고 비트0을 0으로
PORTA&=~1;
스위치 입력을 읽기 위해서도 사용 합니다.
비트0만을 읽기 위해서
if(PINB&1){} // 비트0이 1이라면
if((PINB&1)==0){} // 비트0이 0이라면
//---
PORTA|=1;
이 문장의 원형은 PORTA = PORTA | 1;
~는 비트 반전 연산자 이므로 ~1은 00000001 을 반전 하면 11111110
if(조건){}
조건식에서
조건의 변수가 8비트라고 하면
참은 1부터 255
거짓은 0
거짓만 아니면 if(){}문이 실행 됩니다.
댓글 0
조회수 1,512등록된 댓글이 없습니다.