J 창고

[Atmega128] 특정 비트만 SET or Clear 하기 위한 Define 본문

컴퓨터/Firmware

[Atmega128] 특정 비트만 SET or Clear 하기 위한 Define

JSFamily 2014. 12. 26. 20:14



#define sbi(PORTX, BitX) PORTX |=    (1 << BitX) // Set Bit Instruction

#define cbi(PORTX, BitX) PORTX &= ~(1 << BitX) // Clear Bit Instruction





사용방법 


sbi(EIMSK, 0);            // EIMSK 레지스터의 0번째 bit를 SET

sbi(EICRA, 1);            // EICRA 레지스터의 1번째 bit를 SET





ps. Atmel Studio 에서 Interrupt를 사용하기 위해선 


#include <avr/interrup.h>

를 추가하고


sei();

를 실행해야 함

SREG |= 0x80; 와 같은 듯




반대로 Interrupt를 금지하기 위해선

cli();

실행

SREG &= 0x7F; 와 같은 뜻


SREG레지스터가 먹히질 않아서....

Comments