본문 바로가기
[Intel] 엣지 AI SW 아카데미/펌웨어 프로그래밍 75hour

[Intel] 엣지 AI SW 아카데미 12일차 (부산상공회의소 인력개발원)

by 0x01 2023. 11. 30.

제목: [Intel] 엣지 AI SW 아카데미

부제목: 12일차

일정: 2023.11.10(금)

수업 내용: 
 

 - C언어 프로그래밍

 - Micro Processor 원리 

 - Atmel사의 8bit Micro-controller 

 - KUT0128 Evaluation Board 기능과 특징

 

 - IIC-BUS Programming

 

 - External Interrupt 제어

 

목표: 

 

Interrupt
 - 마이크로프로세서는 한번에 하나의 프로그램(명령)만 실행 가능, 이때 긴급히 처리해야 할 프로그램이
있을 경우
 - 현재 실행중인 프로그램을 중지하고 긴급한 프로그램의 실행을 끝낸 후 중지한 프로그램을 계속 실행
 - 프로세서의 내/외부 장치가 프로세서에게 특정 이벤트(event)가 발생함을 알려서 이벤트를 처리하는
과정 (Event : Interrupt flag, 처리 : Interrupt service routine)
 - 이벤트는 프로세서의 내부 장치나 외부 I/O 장치에서 비정기적으로 발생하기 때문에 Interrupt 처리를
통해 주변 장치의 서비스(이벤트 처리) 요청을 효율적으로 다룰 수 있음

 

 

유형별 ATmega128 Interrupt 발생 원인

 

MCUCR(MCU Control Register)

 

 

• Bit 1 – IVSEL :

 

Interrupt Vector Select - 비트가 0이면 Interrupt Vector Table는 플래시 메모리의 시작에 위치 - 비트가 1이면 Interrupt Vector Table는 플래시 메모리의 부트 로더 섹션의 선두 위치로 이동 - 부트 로더의 선두 어드레스는 퓨즈 비트 BOOTSZ1..0에 의해 결정 - 이 비트에 새로운 값을 쓰기 위해서는 IVCE 비트를 우선적으로 1로 하고 4cycle 이내에 원하는 값 Write. 이 4cycle 동안 MCU는 인터럽트 금지상태

 

• Bit 0 – IVCE :

 

Interrupt Vector Change Enable - IVSEL 비트를 변경할 때 사용 - 1이 되고 4 사이클 후 또는 IVSEL에 값이 set 되었을 때 하드웨어적으로 clear - IVCE 비트에 1을 쓰고, 4사이클 이내에 IVSEL 비트에 원하는 값 Write

 

 

External Interrupt Mask register [ EIMSK ]

 

 

• EIMSK는 External Interrupt 를 enable 시키는 비트로 구성

 

• Bit 7~0-INT7~INT0 : External Interrupt enable bit - INT0~INT7 bit가 set 되어 있고 상태 레지스터 SREG의 I비트가 set 되어 있을 경우에 해당하는 외부 Interrupt enable - Interrupt trigger 방식은 EICRA와 EICRB 레지스터에 의해 설정