개요 | |
pSoC / pRoC의 WDT(Watch Dog Timer) 로 일정주기 인터럽트 발생시키기. - WDT 는 통상 타이머 오버플로우 발생시 시스템 리셋용으로 사용하나 이것만이 유일한 활용은 아님.
- 본 예에서는 WDT를 이용하여 일정 시간격 (1초) 으로 인터럽트 발생시키는 예를 보인다.
본 글에서 사용된 타겟보드 : pSoC4 BLE 킷트 -> http://igotit.tistory.com/260 (장착되어 있는 MCU품번 : CY8C4247LQI-BL483 )
본 글에서 사용된 IDE : Creator 3.1 SP2.
WDT의 내부구성 (Creator 의 도움말 중 system_reference_guide.pdf 에 설명있음.) pSoC 4100/4200/4100 BLE/4200BLE 인 경우 : 2개의 16bit counter(Counter-0, Counter-1), 1개의 32bit counter (Counter-2) 로 구성되어있다. 이들 counter 들을 서로 개별적으로 동작시킬 수 도 있고, cascade 로 동작시킬 수 도 있다.
| |
|
구현. | |
단계1. 스키메틱에 Component 배치.
Creator 프로젝트의 Component 중 Global Signal Reference 를 스키메틱에 배치하고, 이름을 WDT로 변경하고, 인터럽트 컴포넌트 이름은 isr_wdt 로 변경했다. 출력핀 1개를 배치하고 Pin_LED_GREEN 으로 하였다. 개발킷의 3색 LED중 녹색에 할당된 핀번호인 P3.6을 할당해뒀다.
단계2 : 코드 추가.
간단한 시험목적이므로 main.c에 관련 코드를 모두 구현하도록 한다. 아래 붉박 1은 2에서 사용되는 값들이며, Counter-0 을 사용하며, 카운트 주기는 32768을 사용한다는 설정이 이뤄진다. 붉박 3이 WDT에서 인터럽트 발생시 수행되는 인터럽트 핸들러이다. 외부 LED는 매번의 인터럽트 발생시마다 직전 LED상태를 반전하여 출력하게 하였다.
소스코드 첨부 :main.c
| |
|
동작확인. | |
인터럽트는 정확히 1초단위로 발생한다. 이때 외부 녹색 LED가 1초동안 켜진 상태로 유지되었다가 그 다음 1초동안은 꺼진 상태로 유지된다. MCU의 소비전류도 같이 모니터하였다. SYSCLK=48MHz. LED구동전류는 제외된 전류이며, 전류 단위 : mA
| |
|
본 글이 포함된 통합 정리 : http://igotit.tistory.com/244 |
///261.
'임베디드.일렉트로닉스' 카테고리의 다른 글
SILabs, USB Debug Adapter (0) | 2015.04.18 |
---|---|
EFM32 Zero Gecko 개발보드 . EFM32ZG-STK3200 (0) | 2015.04.18 |
Cypress Bluetooth Low Energy 개발보드 . CY8CKIT-042-BLE (0) | 2015.04.15 |
pSoC, pRoC CapSense 기본 정보들. (0) | 2015.04.15 |
pSoC / pRoC BLE. UART to BLE 브릿지. (0) | 2015.04.12 |
댓글