BK128을 이용한 스위치 점등 실험
#define DDRA (*((volatile unsigned char*)0x21))
#define PORTA (*((volatile unsigned char*)0x22))
#define PINA (*((volatile unsigned char*)0x20))
#define EICRA (*((volatile unsigned char*)0x69))
#define EICRB (*((volatile unsigned char*)0x6A))
#define EIMSK (*((volatile unsigned char*)0x3D))
#define SREG (*((volatile unsigned char*)0x5F))
#define sei() __asm__ __volatile__ ("sei" ::)//(7번비트만 1로 만들어줌.어셈블리코드)
#define sleep() __asm__ __volatile__ ( "sleep" "\n\t" :: )
#define INT7 7
#define INT6 6
#define INT5 5
#define INT4 4
#define INT3 3
#define INT2 2
#define INT1 1
#define INT0 0
#define ISC7 6
#define ISC6 4
#define ISC5 2
#define ISC4 0
#define ISC3 6
#define ISC2 4
#define ISC1 2
#define ISC0 0
void __vector_1 (void) __attribute__((signal, used, externally_visible));//외부에서 호출이가능하다 (인터럽트 신호를 받는다,사용된다,외부에서 이걸 볼 수 있어야한다.(호출가능하다))
int main(void)
{
DDRA=0xFF;
PORTA=0x00;
EICRA=(3<<ISC0);// ISC0는 INT0을 같다
EIMSK=(1<<INT0);//INT0 Enable (==EIMSK=1;,INT0만 열고 나머지문은 다 닫는다.만약 다른것도 열고 싶으면 (1<<INT0) | (1<<INT3);이렇게 쓴다.)
SREG=SREG|(1<<7);//sei();(어셈블리보다 코드보다 느리다.SREG=SREG | (1<<7)==sei();) 랑같다
while(1)
{
}
return 0;
}
void __vector_1(void)
{
PORTA=~PORTA;
}
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
20160315_김가연_업무일지_전역변수 (2) | 2016.03.16 |
---|---|
2016-03_15_인터럽트_노태경_업무일지 (0) | 2016.03.16 |
2016_3_15_전역변수_노태경_업무일지 (0) | 2016.03.16 |
비트연산계산기 (2) | 2016.03.16 |
20160314-조재찬-업무일지-펌웨어 분석(외부 인터럽트) (3) | 2016.03.16 |
20160315_송민규_업무일지_펌웨어분석, 학습 (3) | 2016.03.16 |
20160311-허도경-업무일지-펌웨어분석 (0) | 2016.03.15 |
20160314_정우민_인터럽트 (0) | 2016.03.15 |