인터럽트(3)
-
인터럽트의 종류와 동작 원리
인터럽트 외부 인터럽트 전원 이상 인터럽트 - 정전 또는 전원 이상이 있는 경우 발생한다. 기계 착오 인터럽트 - CPU의 기능적인 오류 동작이나 고장 시 발생한다. 외부 신호 인터럽트 - 타이머에 이해 규정 시간을 알리는 경우, 키보드 입력, 외부 장치의 요청이 있는 경우 발생한다. 입출력 인터럽트 - 데이터 오류가 발생한 경우나, 전송이 끝났음을 알릴때 발생한다. 내부 인터럽트 명령어 잘못 인터럽트 - 프로그램에서 명령어를 잘못 사용한 경우 발생한다. 프로그램 검사 인터럽트 - 오버플로, 언더플로, 0으로 나누는 연산, 접근 금지 공간에 접근했을때 발생한다. 소프트웨어 인터럽트 SVC 인터럽트 - 사용자가 Supervisor Call 명령을 써서 의도적으로 호출할 경우 발생한다. 인터럽트 동작 원리 ..
2020.10.09 -
[Atmega128] 7. SPI 통신 (Serial Peripheral Interface Bus)
이번엔 atmega128에 있는 SPI (Serial Peripheral Interface Bus) 통신을 알아보도록 하자. 직렬 주변기기 인터페이스 버스라는 뜻으로, 전이중 통신이며 마스터 슬레이브 형식으로 통신한다. MHz 단위까지 통신이 가능하며 전송완료 인터럽트를 제공한다. 먼저 SS핀으로 슬레이브를 지정하고, SCK를 통해 송신할 데이터를 시프트 레지스터에 준비하여 마스터에서 슬레이브에게 MOSI를 보내고 슬레이브가 마스터에게 MISO를 보낸다. 레지스터를 알아보자. 1. SPCR (SPI Control Register) SPIE (SPI Interrupt Enable) : 1로 설정시 전송완료 인터럽트 허용 SPE : (SPI Enable) : 1로 설정시 SPI 통신 허용 DORD (Data..
2019.08.05 -
[Atmega128] 2. 외부 인터럽트 External Interrupts Register
외부 인터럽트는 센서의 값 등 외부에서 신호를 입력받아 인터럽트를 발생시킨다. 입력받아야 할 때 자주 쓰이며 초기에 설정해야 하는 게 있다. atmega128 기준으로 외부 인터럽트가 두개 있으며, A와 B로 표기한다. 순서 1. 인터럽트 포트를 input모드로 설정해준다. 2. EICRA or EICRB 레지스터를 설정해준다. 3. EIMSK 레지스터를 설정해준다. 1번의 인터럽트 포트를 input모드로 설정하는 것은 전 포스팅에서 다루었으니 2번과 3번을 알아보자. 1. EICRA..B - External Interrupt Control Register A.. B EICRA에서는 interrupt 0.. 3을, EICRB에서는 4... 7을 설정하게 되어있다. 이 레지스터의 용도는 인터럽트 모드를 조..
2019.08.02