본문 바로가기
코스웨어/16년 스마트컨트롤러

20160314- 이보원-스마트컨트롤러-펌웨어 (BK128을 이용한 스위치 점등 실험)

by 알 수 없는 사용자 2016. 3. 16.
728x90
반응형

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;
}


728x90