[기타] [타이젠] GPIO의 디지탈 출력과 입력 인터럽트의 C++ Class 제작
- Download
- GPIO.zip(2.7 KB) 2019-09-1215
- Link
- http://tizenschool.org/tutorial/154/contents/162
타이젠의 How to Create Basic Smart Light App 기본 예제에서 GPIO의 디지털 출력과 입력 인터럽트를 처리 로직이 c로 작성 되어 있어 사용의 편의성을 주기 위하여 c++ 작성 하여 공유 합니다.
GPIO_Digital_Out Class는 GPIO에 디지탈 출력 시 사용되며, 사용 PIN 할당 후 = 연산자를 사용하여 값을 넣으면 해당 포트에 데이타 전송하도록 구현
#define SENSOR_LED_GPIO_NUMBER (24) GPIO_Digital_Out GPIOLedOut( SENSOR_LED_GPIO_NUMBER ); static void motion_interrupted_cb(peripheral_gpio_h gpio, peripheral_error_e error, void *user_data) { GPIOLedOut = MotionIn.read(); } |
GPIO_Digital_Interrrupt Class는 GPIO의 디지털 입력시 사용 되며 상단에 사용 PIN 할당 후 인터럽트를 처리할 Call Back함수를 정의 후 입력 신호의 rise,fall,both을 선택하여 Call Back함수를 등록하여 줌
호출 되는 Call Back 함수의 파라미터 값들은 tizen에서 정의 되어 있어 형식을 맞출어여 됨
#define SENSOR_MOTION_GPIO_NUMBER (18) GPIO_Digital_Interrrupt MotionIn(SENSOR_MOTION_GPIO_NUMBER); static void motion_interrupted_cb(peripheral_gpio_h gpio, peripheral_error_e error, void *user_data) { GPIOLedOut = MotionIn.read(); } void service_app_control(app_control_h app_control, void *data) { MotionIn.both(motion_interrupted_cb ); } |