본문 바로가기
임베디드.일렉트로닉스/nRF52

nRF52840. SDK기반 코딩. step by step 2. GPIOTE

by i.got.it 2019. 10. 6.

 

개요

- 이전 작업했던 SDK 이후 코딩 이후  SDK 에서 제공되는 GPIOTE 활용하기 위한 설정 정리.

 

사전준비. 

1. nRF52 SDK 기반 코딩 step by step 1. https://igotit.tistory.com/2323

- SDK 제공 시간지연 함수들 활용하기 위한 프로젝트 설정.

 

nRF52840. SDK기반 코딩. step by step.

개요 이전에 작업했던 생코딩 GPIO 제어 프로젝트에 SDK 에서 제공하는 시간지연 함수 nrf_delay_ms() 호출하기 위한 설정과정 상세히 보인다. 사전준비 1. sdk없이 만든 GPIO 제어 프로젝트. https://igotit.tist..

igotit.tistory.com

2. nRF5 SDK 에서 제공되는 예제 프로젝트 pin_change_int

- nRF5 SDK 설치경로의 \examples\peripheral\pin_change_int 에 있음.

 

nRF5 SDK. 개요. 다운로드.

nRF5 SDK 개요. Nordic 사 nRF5xx 계열 펌웨어 개발시 필수 요구되는 SDK. nRF5 SDK 지원 IDE - SEGGER Embedded Studio (SES. 설치방법 상세보기 ) - KEIL MDK-ARM - 기타 이클립스나 IAR 도 지원되나 SES 면 충..

igotit.tistory.com

 

3. nRF52 의 GPIOTE 개념이해 

https://igotit.tistory.com/1699

 

nRF52. GPIOTE. GPIO tasks and events.

GPIOTE. GPIO tasks and events. - GPIOTE는 GPIO에 연결되어 GPIO 핀 상태를 다른 곳에서 활용혹은 다른곳의 상태롤 GPIO 상태변경시키는 용도. - GPIOTE는 CPU가 관여하는 소프트웨어적인 처리가 아닌 하드웨어..

igotit.tistory.com

 

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

 

SES. CMSIS Configuration Wizard for nRF5 SDK

개요 nRF5 SDK 의 sdk_config.h 에서 각종 peripheral 기능 설정이 이뤄지는데 방대한 양이다 보니 텍스트 편집모드에서는 특정 설정에 접근하는게 불편 . 이를 시각적으로 조금 편리하게 설정항목에 접근하여 수..

igotit.tistory.com

 

이후 아래 영상에 전체 과정.

 

아래영상. 위 설정 이후 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

 

nRF52840. GPIO 코딩. SDK 없이 레지스터 직접 제어

개요. - nRF52840 의 GPIO 제어 코드를 nRF5 SDK 없이 레지스터 직접 접근하여 코딩하는 예 정리. - SDK 없이 레지스터 직접 제어 코드 작성해봐야 하는 이유 . 실활용목적에서는 SDK 기반하여 작성하겠지만 초보..

igotit.tistory.com

main.c 코드 전체

 

 

 

 

 

 

본 글 포함된 상위 정리글

https://igotit.tistory.com/244

 

STM32. nRF52. ESP32. EFM8. EFM32. PSoC 활용 정리.

STM32. nRF52. ESP32. EFM8. EFM32. PSoC 총정리 제조사 칩 주요특징 실리콘랩 8bit MCU EFM8 시리즈 32bit EFM32 시리즈 EFM8 싸다. STM STM32 . 최고 항상 만족. Cypress pSoC pSoC6 은 기대해볼만. NORDIC nRF5..

igotit.tistory.com


첫등록 : 2019년 10월6일

최종수정 : 

 

본 글 단축주소 : https://igotit.tistory.com/2326

 


 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5