개요
- 이전 작업했던 SDK 이후 코딩 이후 SDK 에서 제공되는 GPIOTE 활용하기 위한 설정 정리.
사전준비.
1. nRF52 SDK 기반 코딩 step by step 1. https://igotit.tistory.com/2323
- SDK 제공 시간지연 함수들 활용하기 위한 프로젝트 설정.
2. nRF5 SDK 에서 제공되는 예제 프로젝트 pin_change_int
- nRF5 SDK 설치경로의 \examples\peripheral\pin_change_int 에 있음.
3. nRF52 의 GPIOTE 개념이해
https://igotit.tistory.com/1699
nRF5 SDK 제공 GPIOTE 관련함수 활용.
상기2와 1 프로젝트를 오픈한 상태에서 2의 것을 참조하면서 1의 프로젝트 구성한다.
절차요점 : main.c 에서 nRF5 SDK 에서 제공하는 함수 호출하고 빌드하여 발생하는 헤더포함위한 경로 추가, SDK제공하는 c파일 요구되는 경우 C파일 추가, sdk_config.h 추가 설정 변경 .
SES 프로젝트 구성
nRF5 SDK 설치경로의 \examples\peripheral\pin_change_int\cinfig 의 sdk_config.h 를 우리 프로젝트의 SRC에 복사해두고, CMSIS Cinfiguration Wizard 설정 한다. CMSIS Cinfiguration Wizard 설정법 보기 : https://igotit.tistory.com/2325
이후 아래 영상에 전체 과정.
아래영상. 위 설정 이후 GPIOTE 관련 함수들 모두추가한다.
아래영상. - 프로젝트소스파일의 일관된 관리 위한 정리사항.
- 기능에는 영향을 미치지 않으나 지속적 프로젝트 유지관리 목적에서 일관성 있게 하기 위함.
- 즉 , 본 템플릿3 형식으로 재구성된 프로젝트 관리 방식에서 SDK 버전 변경이 간단하게 달성되게 하려는 목적으로 project macro 에 my_nRF5_SDK_PATH=../../사용하는SDK폴더명 식으로 정의하였고, 이 곳의 SDK 폴더명을 변경하면 다른 버전으로 즉시 교체되어 작동가능하다. 그런데 상기 동영상에서 nrf_gpiote.c 추가 하는 과정에서 해당 파일의 절대경로가 .emProject 파일에 기록된다. 이 파일을 텍스트 편집가능한 툴에서 오픈하여 경로를 $(my_nRF5_SDK_PATH) 로 변경처리한다.
KEIL 프로젝트 구성
- 앞의 SES 에서 구성하는것과 동일한 방식임.
앞에서의 설정 완료하고 main 문에 아래처럼 init_gpiote()만 기록하자.
int main()
{
init_gpiote();
while(1)
{
}
}
위 코드를 타겟보드 PCA10056 에 기록하여 동작시켜보면 Button1 에 누르고 떼는 것에 따라 LED on off 된다.
이전에 작업했던 아래 코드에서처럼 Button 상태 확인하고 각 상태에따라서 LED제어하는 구문을 모두 작성했었던것과는 다른 방식임을 알 수 있다.
https://igotit.tistory.com/2314
main.c 코드 전체
본 글 포함된 상위 정리글
https://igotit.tistory.com/244
첫등록 : 2019년 10월6일
최종수정 :
본 글 단축주소 : https://igotit.tistory.com/2326
'임베디드.일렉트로닉스 > nRF52' 카테고리의 다른 글
nRF52. 예제프로젝트 기반 내 프로젝트 정리하기. (0) | 2019.10.17 |
---|---|
문제해결. nRF5 SDK. NRF_LOG_INFO not shown in SES Debug Terminal. (1) | 2019.10.07 |
nRF52840. SDK기반 코딩. step by step 1. 시간지연함수 (0) | 2019.10.05 |
nRF52. GPIOTE. GPIO tasks and events. (0) | 2019.10.05 |
nRF52840. GPIO 코딩. SDK 없이 레지스터 직접 제어 (1) | 2019.10.05 |
댓글