일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 임베디드
- 2019년 회고
- 아두이노
- 외부인터럽트
- 임계 영역
- 임베디드 개발자
- 다운캐스팅
- 코딩
- Dekker
- AVR
- 임베디드 시스템 프로그래밍
- peterson 알고리즘
- 피터슨 알고리즘
- c언어 setvbuf
- 무래함의 비용
- 워치독 타이머
- 데커 알고리듬
- AVR기초
- down-casting
- 임베디드 초급
- 업캐스팅
- 임베디드 입문
- 리눅스 기초
- 데커 알고리즘
- 데커
- setvbuf
- 임베디드시스템프로그래밍
- up-casting
- 리눅스 setvbuf
- 대구소프트웨어고등학교
- Today
- Total
목록AVR (3)
인성 좋은 인성이

와치독 타이머는 프로세서가 안정적으로 동작하는가를 감시하는 친구이다. 와치독 타이머는 타이머가 일정 값에 도달했을 때 워치독 타이머가 리셋된다. 하지만 어떤 이유에서라도 워치독 타이머가 리셋되지 않는 경우 프로세서에 이상이 생겼다는 판단을 하고 시스템을 리셋시킨다. WDTCR 레지스터 WDCE - WDE가 0으로 세트 되어있을 때 1로 세트 되어야 한다. 아니면, 와치독 타이머가 작동하지 않을 것이다. 1로 세트 되면 하드웨어는 4클럭 사이클 이후에 클리어 될 것이다. safety level 1과 2에서 프리스케일러 비트를 바꾸는 경우 1로 세트 되어야 한다. WDE - 1이면 와치독 타이머가 작동하고 0으로 클리어되면 작동하지 않을 것이다. WDE는 WDCE비트가 1일 경우에만 클리어가 가능하다. WD..

본 글은 ATmega128을 기준으로 작성되었으며, 8bit 기준으로 설명되었음을 알립니다. ATmega128은 타이머가 4개(0~3)가 존재한다. 타이머는 인터럽트를 사용하고 PWM 파형을 만들고자 할 때 주로 사용된다. 이 중 타이머 0, 2는 8bit이고 1, 3은 16bit이다. 인터럽트는 카운트의 값이 오버플로우 되었을 때 발생하는 OVF, 카운트 값과 비교 레지스터 값이 일치할 때 발생하는 인터럽트 등이 존재한고, 입력 캡처 인터럽트도 존재한다. 사실 타이머를 사용하는 목적은 인터럽트 사용도 있지만, 내가 원하는 파형을 만들기 위해서(적어도 글쓴이는 그렇다) 많이 사용한다. 원하는 파형을 만들기 위해서는 ATmega128에서 제공하는 register를 적절하게 사용하면 된다. 그렇다면 ATme..

이 글의 내용은 ATmega328을 베이스로 합니다. 인터럽트란 무엇인가? 우선 인터럽트가 돌아가는 간단한 이해를 하고 있어야 인터럽트를 다룰 수 있다. 물론 인터럽트에 대한 이해가 없다고 인터럽트를 다루지 못한다는 것은 아니다. 하지만 인터럽트를 효율적으로 사용하기 위해서는 그 메커니즘을 이해할 필요가 있다. 인터럽트라는 개념은 기회가 된다면 자세하게 다루어 볼 생각이 있다. 다만 당장은 간단하게만 설명을 할 것이다. 인터럽트라는 것은 어떠한 특별한 이벤트가 발생했을때 발생하는 동작이라고 생각하면 된다. 즉 인터럽트는 평소에 동작하는 것이 아니라 일정한 조건이 충족될 때 동작하는 것이다. 그럼 언제 인터럽트를 활용해야 하는가? 사실 인터럽트는 사용하기 나름이다. 센서의 값을 받아올 때도 사용하고, 특정..