인터럽트란 ?
마이크로프로세서에서 인터럽트(interrupt, {가로채기})란 마이크로프로세서(CPU)가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것을 말한다. 폴링이 대상을 주기적으로 감시하여 상황이 발생하면 해당처리 루틴을 실행해 처리한다면, 인터럽트는 상대가 마이크로프로세서에게 일을 처리해 달라고 요청하는 수단이다. 따라서 폴링과 대비대는 개념이다.
- 위키 백과 참조
인터럽트 이해 위한 - 주CM님이 알려주신 예화 : 아버지의 아들내미 감시시스템.
승규쌤이 알려주신 예화 : 군대에서 어느분에 명령을 우선 처리 할것인지.
우리 수업 들으신 분들만 이해 하실 수 있는 예화 겠군요 ㅋㅋㅋ
교제 P.131~
우리가 많이 쓰는 인터럽트
- 외부 인터럽트
- 차단 가능 인터럽트
- 벡터형 인터럽트
(나머지 내부 인터럽트, 차단 불가능 인터럽트, 조사형 인터럽트 거의 안씀(무시해도 됨) 읽어만 보고 넘어가세라고 하심.)
인터럽트 처리과정
1. 인터럽트 요청 신호의 검출
2. 인터럽트 우선순위 제어 및 허용 여부 판단
3. 인터럽트 처리 루틴의 시작 번지 확인
4. 복귀주소 및 레지스터를 저장
5. 인터럽트 서비스 루틴을 실행
6. 인터럽트 서비스 루틴을 종료하고 원래의 주 프로그램 으로 복귀
수업 시간 misson
void main()
{
while(1)
{
}
}
보통 avr 프로그램 사용 방식이 다음과 같은데 while 문이 돌때 중간에 데이터가 들어올 경우 어떻게 할것 인가 ?
주 프로그램 루틴이 메인함수
(교제 p137 백터 넘버) == (데이터시트 백터넘버 -1); 백터 넘버가 낮을 수록 우선 순위가 높다.
while 문을 루프를 돌고 있을 때 PORTD의 스위치 (High에서 Low로 변환시) 작동시 벋어나 PORTA에 연결된 다이오드 작동 되도록 하는 프로그램 작성후 프로테우스로 실행.
해더파일.
C파일.
프로테우스 작성도.
#include<avr/interrupt.h>
//win avr 에서 해더 파일 제공
ISR(INT0_vect)
{
PORTA ^= 0x01;
}
를 이용 해도 같은 방식이다.
main.c
Makefile
SMART.H
네트워크, C수업
자료출처 : 구글신
◈ LAN : Local Area Network의 약자로 적당히 작은 규모의 네트워크이다. 상당히 애매한 표현이므로 대게는 한 사무실, 회사 단위의 네트워크 또는 같은 프로토콜을 쓰거나 WAN으로 나가기 직전까지의 네트워크를 가리킨다.
◈ WAN : Wide Area Network. LAN과 LAN을 연결하는 네트워크 대게 인터넷을 가리킨다.
참고출처 : 구글신
WAN이 모인 제일 큰 덩어리를 'Internet'이라고 한다.
'보통!' 자기 아이피 세자리 다음 네번째자리가 1은 게이트웨이, 255일 경우 브로드캐스트 이다.
C수업.
p.472~477 구조체의 정의와 typedef의 선언 복습
주CM님이 알려주신 소스 코드
#include<stdio.h> |
구조체의 크기 계산
typedef struct _smart
{
int A;
char B;
short C;
int D;
char E;
short F;
char G;
}smart;
다음과 같은 구조체가 선언 되었을 때 각 자료형의 크기를 생각해보고 다 더했을때 4+1+2+4+1+2+1 = '15' 의 크기로 예상 했었을 것이다.
but !
printf("%d\n", sizeof(smart));
해본 결과 크기가 '20'으로 출력이 되었다.
그렇다면 남은 5바이트는 어떻게 되었단 말인가.
32비트 컴파일러 이기 때문에
구조체 안 앞에 char형이나 short형이 선언 되고 int형이 선언 될 경우 3바이트 2바이트가 남더라도 그 남은 공간을 뛰우고 밑에 4바이트가 차지하게 된다. 그리고 앞에 char 형이 선언되고 short형이 선언 될 경우 1바이트 공간을 튀우고 그옆에 2바이트가 공간을 차지 하게 된다. 뒤에 선언 되어지는 자료형에 크기에 맞게 공간이 뛰어지면서 메모리 크기를 먹는다.
따라서 sizeof를 통해 크기를 확인 하고 메모리에 크기가 어떻게 할당 되어지는지 이해하는 것이 중요하다.
(4바이트식 메모리 활당이 된다 가정 했을때 위의 smart 구조체 안에 int형 H, char형 I J, short형 K가 추가 선언 된 메모리. smart형크기 28바이트)
틀린점, 보충할 점들 댓글 달아주세요 ^^ ㅎㅎㅎ
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20150417-24번-이량경 _ 포인터의 포인터 / 다중인터럽트 (9) | 2015.04.19 |
---|---|
2015 04 16 목요일 23번 윤재희 인터럽트(Interrupt)와 전자 룰렛 & 포인터를 활용한 1/2차원 배열의 값과 주소 (10) | 2015.04.16 |
2015 04 15 수요일 22번 우대희 주사위/배열 (11) | 2015.04.15 |
20150414 -21번- 여지윤 - 인터럽트 / 구조체와 사용자 정의 (7) | 2015.04.14 |
20150410-19번 안향진-AVR-ATmega128 7SEGMENT 두자리숫자 count up 실습내용 정리/C언어-구조체 배열과 포인터 /네트워크-알파넷,인터넷 (7) | 2015.04.10 |
20150409 - 18번 안해운 - ATMega128 7Segment Control, 라즈베리파이 및 해커스쿨 (4) | 2015.04.09 |
[스무디] 해커스쿨 ftz를 통해 리눅스 배우기 1 YouTube (3) | 2015.04.09 |
20150407 - 16번 박태인 - Atmega2560 7seg Up Count & 개인 ip 설정, 리눅스 환경설정 및 ip (12) | 2015.04.08 |