페이지

글목록

2016년 1월 4일 월요일

[dialog] peripheral_examples (sys_tick + UART2 + GPIO_input + PWM)

BLE를 제외하고 Peripheral을 몇개 조합해서 프로그램을 테스트해 봤습니다.

16MHz 일반 CPU처럼 사용한 예죠.

제가 생각하기에는 BLE 칩인 DA14580을 BLE 통신으로만 사용하기엔 버리는 것이 많은데,
평소에 좀 다양하게 통신 외적인 것도 연습을 해 두는 것도 좋을 것 같았습니다.

필요할 때 찾아 프로그램을 하다 보면, 겨우 기능만 구현하고 코드도 엄청 지져분해 져서, 다시보면 머리속이 새하얘지도록 잊어버리는 경우가 많은 것 같습니다.


저는 아직까지, 프로젝트를 처음부터 새로 만드는 방법은 모르겠습니다. 그래서 systick 프로그램 원형에다 UART2,GPIO INPUT,PWM을 차례로 추가했습니다.

1. systick 예제는 원래 1초마다 GPIO를 인터럽트에 의해 Toggle 하는 프로그램인데, 50ms마다 인터럽트가 걸리고 50ms 인터럽트가 10번 걸릴때마다(500ms 마다) P1.1이 토클 되도록 프로그램했습니다.

2. UART2 로 GPIO INPUT으로 개발 키트의 스위치 2개의 입력을 받아서 입력 값을 터미날로 출력하도록 했습니다.

3. GPIO INPUT으로 받는 스위치 2개로 PWM을 변경하도록 했습니다.


여기서 하나, 좀 힘들었던 부분은 pwm.h 를 추가하는 방법을 몰라서 헤맸는데, 이것을 추가하는 방법은

1. Option for target 버튼을 누른 후,

2. C/C++ TAB 의 Include Path 버튼을 눌러 줍니다.

3. Folder Setup 메뉴의 New(Insert)를 눌러서 다음의 Path를 추가합니다.
..\..\..\..\..\..\sdk\platform\driver\pwm




이렇게 하니 PWM.h 파일이 왼쪽 main.c 밑에 나타나는군요. 그런 후에 컴파일하면 프로그램이 잘 돌아 갑니다.


예제 파일은 다음 링크에 압축해서 추가해 놓았습니다.

하드웨어 구성은 사진과 같습니다.



스위치를 누르면 PWM1,2가 대칭으로 누를 때마다 변경이 되어 출력됩니다.

PC의 터미날로 버튼을 누를때, 마다 키값과 현재 PWM 의 인덱스가 표시되도록 했습니다.

댓글 없음:

댓글 쓰기