프로그래밍 언어/c(임베디드)10 비트 마스크 비트 연산 : 비트를 기본 단위로 연산을 시켜주는 연산자, 피연산자는 반드시 두 개의 정수이여만 하는 이항 연산자.실수는 비트 연산 불가능 비트 마스크는 임베디드 시스템에서 몇가지 장점을 가진다 . 비트 마스크는 주로 세가지 역할로 나눌수 있다.특정 비트를 특정 값으로 만들거나 비트 값을 2배수 연산 시 , 특정 비트 값을 얻기 위한 용도이다. ※특정 비트 제어A라는 집합이 있다고 하자, k 번째 비트를 제어하고 싶다. 1. k번째 비트만 1으로 만들기 (BIT SET) A |= (1 2. k번째 비트만 0으로 만들기 (BIT RESET or Clear) A &= ~(1 3. k번째 비트 토글하기(BIT TOGGLE) A ^= (1 ※ 2배수 연산 1. 해당 수 2배수 곱하기 집합 값.. 2024. 5. 22. volatile 지시자 C언어 컴파일러 지시자 중에 'volatile' 지시자에 대해 포스팅한다. MCU FW 프로그래밍을 하다 보면 레지스터를 제어하기 위해 같은 주소에 여러번 값을 여러번 쓰는 경우가 빈번하고, 앞에 volatile 키워드를 사용하는 경우를 볼 수 있다. ※사용법 원형 : volatile [type] [variable_name];ex) *(volatile unsigned int *)0x8CFF = 0x8001, volatile int num1; 아래와 같은 상황들에서 volatile을 제대로 사용하지 않아서 문제 발생 가능성이 있다. 컴파일화 최적화를 사용하지 않으면 제대로 동작하는 코드가 최적화만 사용 시 인터럽트를 사용하지 않으면 잘 동작하는 코드가 인터럽트 사용시메모리 주소를 가진 I/O 레지스터.. 2024. 5. 8. 이전 1 2 3 다음