diff --git a/project/ble_peripheral/ble_app_bladder_patch/pca10056/s140/arm5_no_packs/ble_app_bladder_patch_s140.uvoptx b/project/ble_peripheral/ble_app_bladder_patch/pca10056/s140/arm5_no_packs/ble_app_bladder_patch_s140.uvoptx index 0996c75..2ba9817 100644 --- a/project/ble_peripheral/ble_app_bladder_patch/pca10056/s140/arm5_no_packs/ble_app_bladder_patch_s140.uvoptx +++ b/project/ble_peripheral/ble_app_bladder_patch/pca10056/s140/arm5_no_packs/ble_app_bladder_patch_s140.uvoptx @@ -1255,30 +1255,6 @@ 0 0 0 - ..\..\..\pulse_gen.c - pulse_gen.c - 0 - 0 - - - 1 - 10 - 5 - 0 - 0 - 0 - ..\..\..\pulse_gen.h - pulse_gen.h - 0 - 0 - - - 1 - 11 - 1 - 0 - 0 - 0 ..\..\..\i2c_manager.c i2c_manager.c 0 @@ -1286,7 +1262,7 @@ 1 - 12 + 10 5 0 0 @@ -1298,7 +1274,7 @@ 1 - 13 + 11 1 0 0 @@ -1310,7 +1286,7 @@ 1 - 14 + 12 1 0 0 @@ -1322,7 +1298,7 @@ 1 - 15 + 13 5 0 0 @@ -1334,7 +1310,7 @@ 1 - 16 + 14 1 0 0 @@ -1346,7 +1322,7 @@ 1 - 17 + 15 5 0 0 @@ -1358,7 +1334,7 @@ 1 - 18 + 16 1 0 0 @@ -1370,7 +1346,7 @@ 1 - 19 + 17 5 0 0 @@ -1382,7 +1358,7 @@ 1 - 20 + 18 1 0 0 @@ -1394,7 +1370,7 @@ 1 - 21 + 19 1 0 0 @@ -1414,7 +1390,7 @@ 0 2 - 22 + 20 1 0 0 @@ -1434,7 +1410,7 @@ 0 3 - 23 + 21 1 0 0 @@ -1446,7 +1422,7 @@ 3 - 24 + 22 1 0 0 @@ -1466,7 +1442,7 @@ 0 4 - 25 + 23 1 0 0 @@ -1486,7 +1462,7 @@ 0 5 - 26 + 24 1 0 0 @@ -1498,7 +1474,7 @@ 5 - 27 + 25 1 0 0 @@ -1510,7 +1486,7 @@ 5 - 28 + 26 1 0 0 @@ -1522,7 +1498,7 @@ 5 - 29 + 27 1 0 0 @@ -1534,7 +1510,7 @@ 5 - 30 + 28 1 0 0 @@ -1546,7 +1522,7 @@ 5 - 31 + 29 1 0 0 @@ -1558,7 +1534,7 @@ 5 - 32 + 30 1 0 0 @@ -1570,7 +1546,7 @@ 5 - 33 + 31 1 0 0 @@ -1582,7 +1558,7 @@ 5 - 34 + 32 1 0 0 @@ -1594,7 +1570,7 @@ 5 - 35 + 33 1 0 0 @@ -1606,7 +1582,7 @@ 5 - 36 + 34 1 0 0 @@ -1618,7 +1594,7 @@ 5 - 37 + 35 1 0 0 @@ -1630,7 +1606,7 @@ 5 - 38 + 36 1 0 0 @@ -1642,7 +1618,7 @@ 5 - 39 + 37 1 0 0 @@ -1654,7 +1630,7 @@ 5 - 40 + 38 1 0 0 @@ -1666,7 +1642,7 @@ 5 - 41 + 39 1 0 0 @@ -1678,7 +1654,7 @@ 5 - 42 + 40 1 0 0 @@ -1690,7 +1666,7 @@ 5 - 43 + 41 1 0 0 @@ -1702,7 +1678,7 @@ 5 - 44 + 42 1 0 0 @@ -1714,7 +1690,7 @@ 5 - 45 + 43 1 0 0 @@ -1734,7 +1710,7 @@ 0 6 - 46 + 44 1 0 0 @@ -1754,7 +1730,7 @@ 0 7 - 47 + 45 1 0 0 @@ -1766,7 +1742,7 @@ 7 - 48 + 46 1 0 0 @@ -1778,7 +1754,7 @@ 7 - 49 + 47 1 0 0 @@ -1790,7 +1766,7 @@ 7 - 50 + 48 1 0 0 @@ -1802,7 +1778,7 @@ 7 - 51 + 49 1 0 0 @@ -1814,7 +1790,7 @@ 7 - 52 + 50 1 0 0 @@ -1826,7 +1802,7 @@ 7 - 53 + 51 1 0 0 @@ -1838,7 +1814,7 @@ 7 - 54 + 52 1 0 0 @@ -1850,7 +1826,7 @@ 7 - 55 + 53 1 0 0 @@ -1862,7 +1838,7 @@ 7 - 56 + 54 1 0 0 @@ -1874,7 +1850,7 @@ 7 - 57 + 55 1 0 0 @@ -1886,7 +1862,7 @@ 7 - 58 + 56 1 0 0 @@ -1898,7 +1874,7 @@ 7 - 59 + 57 1 0 0 @@ -1910,7 +1886,7 @@ 7 - 60 + 58 1 0 0 @@ -1922,7 +1898,7 @@ 7 - 61 + 59 1 0 0 @@ -1934,7 +1910,7 @@ 7 - 62 + 60 1 0 0 @@ -1946,7 +1922,7 @@ 7 - 63 + 61 1 0 0 @@ -1958,7 +1934,7 @@ 7 - 64 + 62 1 0 0 @@ -1970,7 +1946,7 @@ 7 - 65 + 63 1 0 0 @@ -1982,7 +1958,7 @@ 7 - 66 + 64 5 0 0 @@ -2002,7 +1978,7 @@ 0 8 - 67 + 65 1 0 0 @@ -2014,7 +1990,7 @@ 8 - 68 + 66 1 0 0 @@ -2026,7 +2002,7 @@ 8 - 69 + 67 1 0 0 @@ -2038,7 +2014,7 @@ 8 - 70 + 68 1 0 0 @@ -2050,7 +2026,7 @@ 8 - 71 + 69 1 0 0 @@ -2062,7 +2038,7 @@ 8 - 72 + 70 1 0 0 @@ -2074,7 +2050,7 @@ 8 - 73 + 71 1 0 0 @@ -2086,7 +2062,7 @@ 8 - 74 + 72 1 0 0 @@ -2098,7 +2074,7 @@ 8 - 75 + 73 1 0 0 @@ -2110,7 +2086,7 @@ 8 - 76 + 74 1 0 0 @@ -2122,7 +2098,7 @@ 8 - 77 + 75 1 0 0 @@ -2134,7 +2110,7 @@ 8 - 78 + 76 1 0 0 @@ -2146,7 +2122,7 @@ 8 - 79 + 77 1 0 0 @@ -2158,7 +2134,7 @@ 8 - 80 + 78 1 0 0 @@ -2170,7 +2146,7 @@ 8 - 81 + 79 1 0 0 @@ -2182,7 +2158,7 @@ 8 - 82 + 80 1 0 0 @@ -2194,7 +2170,7 @@ 8 - 83 + 81 1 0 0 @@ -2206,7 +2182,7 @@ 8 - 84 + 82 1 0 0 @@ -2218,7 +2194,7 @@ 8 - 85 + 83 1 0 0 @@ -2230,7 +2206,7 @@ 8 - 86 + 84 1 0 0 @@ -2242,7 +2218,7 @@ 8 - 87 + 85 1 0 0 @@ -2254,7 +2230,7 @@ 8 - 88 + 86 1 0 0 @@ -2266,7 +2242,7 @@ 8 - 89 + 87 1 0 0 @@ -2278,7 +2254,7 @@ 8 - 90 + 88 1 0 0 @@ -2290,7 +2266,7 @@ 8 - 91 + 89 1 0 0 @@ -2302,7 +2278,7 @@ 8 - 92 + 90 1 0 0 @@ -2314,7 +2290,7 @@ 8 - 93 + 91 1 0 0 @@ -2326,7 +2302,7 @@ 8 - 94 + 92 1 0 0 @@ -2338,7 +2314,7 @@ 8 - 95 + 93 1 0 0 @@ -2358,7 +2334,7 @@ 0 9 - 96 + 94 1 0 0 @@ -2370,7 +2346,7 @@ 9 - 97 + 95 1 0 0 @@ -2382,7 +2358,7 @@ 9 - 98 + 96 1 0 0 @@ -2394,7 +2370,7 @@ 9 - 99 + 97 1 0 0 @@ -2406,7 +2382,7 @@ 9 - 100 + 98 1 0 0 @@ -2426,7 +2402,7 @@ 0 10 - 101 + 99 1 0 0 @@ -2438,7 +2414,7 @@ 10 - 102 + 100 1 0 0 @@ -2450,7 +2426,7 @@ 10 - 103 + 101 1 0 0 @@ -2470,7 +2446,7 @@ 0 11 - 104 + 102 1 0 0 @@ -2482,7 +2458,7 @@ 11 - 105 + 103 1 0 0 @@ -2494,7 +2470,7 @@ 11 - 106 + 104 1 0 0 @@ -2514,7 +2490,7 @@ 0 12 - 107 + 105 1 0 0 @@ -2526,7 +2502,7 @@ 12 - 108 + 106 1 0 0 @@ -2538,7 +2514,7 @@ 12 - 109 + 107 1 0 0 @@ -2550,7 +2526,7 @@ 12 - 110 + 108 1 0 0 @@ -2570,7 +2546,7 @@ 0 13 - 111 + 109 1 0 0 @@ -2582,7 +2558,7 @@ 13 - 112 + 110 1 0 0 @@ -2594,7 +2570,7 @@ 13 - 113 + 111 1 0 0 @@ -2606,7 +2582,7 @@ 13 - 114 + 112 1 0 0 @@ -2618,7 +2594,7 @@ 13 - 115 + 113 1 0 0 @@ -2630,7 +2606,7 @@ 13 - 116 + 114 1 0 0 @@ -2642,7 +2618,7 @@ 13 - 117 + 115 1 0 0 @@ -2654,7 +2630,7 @@ 13 - 118 + 116 1 0 0 @@ -2666,7 +2642,7 @@ 13 - 119 + 117 1 0 0 @@ -2678,7 +2654,7 @@ 13 - 120 + 118 1 0 0 @@ -2690,7 +2666,7 @@ 13 - 121 + 119 1 0 0 @@ -2702,7 +2678,7 @@ 13 - 122 + 120 1 0 0 @@ -2714,7 +2690,7 @@ 13 - 123 + 121 1 0 0 @@ -2726,7 +2702,7 @@ 13 - 124 + 122 1 0 0 @@ -2746,7 +2722,7 @@ 0 14 - 125 + 123 1 0 0 @@ -2758,7 +2734,7 @@ 14 - 126 + 124 1 0 0 @@ -2770,7 +2746,7 @@ 14 - 127 + 125 1 0 0 @@ -2782,7 +2758,7 @@ 14 - 128 + 126 1 0 0 @@ -2794,7 +2770,7 @@ 14 - 129 + 127 1 0 0 @@ -2806,7 +2782,7 @@ 14 - 130 + 128 1 0 0 @@ -2818,7 +2794,7 @@ 14 - 131 + 129 1 0 0 @@ -2830,7 +2806,7 @@ 14 - 132 + 130 1 0 0 @@ -2842,7 +2818,7 @@ 14 - 133 + 131 1 0 0 @@ -2854,7 +2830,7 @@ 14 - 134 + 132 1 0 0 @@ -2866,7 +2842,7 @@ 14 - 135 + 133 1 0 0 @@ -2878,7 +2854,7 @@ 14 - 136 + 134 1 0 0 @@ -2890,7 +2866,7 @@ 14 - 137 + 135 1 0 0 @@ -2910,7 +2886,7 @@ 0 15 - 138 + 136 1 0 0 @@ -2922,7 +2898,7 @@ 15 - 139 + 137 1 0 0 @@ -2934,7 +2910,7 @@ 15 - 140 + 138 1 0 0 @@ -2946,7 +2922,7 @@ 15 - 141 + 139 1 0 0 @@ -2958,7 +2934,7 @@ 15 - 142 + 140 1 0 0 @@ -2970,7 +2946,7 @@ 15 - 143 + 141 1 0 0 @@ -2982,7 +2958,7 @@ 15 - 144 + 142 1 0 0 @@ -3002,7 +2978,7 @@ 0 16 - 145 + 143 1 0 0 @@ -3014,7 +2990,7 @@ 16 - 146 + 144 1 0 0 @@ -3026,7 +3002,7 @@ 16 - 147 + 145 1 0 0 @@ -3046,7 +3022,7 @@ 0 17 - 148 + 146 4 0 0 @@ -3066,7 +3042,7 @@ 0 18 - 149 + 147 1 0 0 @@ -3078,7 +3054,7 @@ 18 - 150 + 148 1 0 0 @@ -3090,7 +3066,7 @@ 18 - 151 + 149 1 0 0 @@ -3110,7 +3086,7 @@ 0 19 - 152 + 150 4 0 0 @@ -3130,7 +3106,7 @@ 0 20 - 153 + 151 1 0 0 @@ -3142,7 +3118,7 @@ 20 - 154 + 152 1 0 0 @@ -3154,7 +3130,7 @@ 20 - 155 + 153 1 0 0 @@ -3166,7 +3142,7 @@ 20 - 156 + 154 1 0 0 @@ -3178,7 +3154,7 @@ 20 - 157 + 155 1 0 0 @@ -3190,7 +3166,7 @@ 20 - 158 + 156 1 0 0 @@ -3202,7 +3178,7 @@ 20 - 159 + 157 1 0 0 @@ -3214,7 +3190,7 @@ 20 - 160 + 158 1 0 0 @@ -3226,7 +3202,7 @@ 20 - 161 + 159 1 0 0 @@ -3238,7 +3214,7 @@ 20 - 162 + 160 1 0 0 diff --git a/project/ble_peripheral/ble_app_bladder_patch/pca10056/s140/arm5_no_packs/ble_app_bladder_patch_s140.uvprojx b/project/ble_peripheral/ble_app_bladder_patch/pca10056/s140/arm5_no_packs/ble_app_bladder_patch_s140.uvprojx index d1600b3..da00718 100644 --- a/project/ble_peripheral/ble_app_bladder_patch/pca10056/s140/arm5_no_packs/ble_app_bladder_patch_s140.uvprojx +++ b/project/ble_peripheral/ble_app_bladder_patch/pca10056/s140/arm5_no_packs/ble_app_bladder_patch_s140.uvprojx @@ -423,16 +423,6 @@ 5 ..\..\..\debug_print.h - - pulse_gen.c - 1 - ..\..\..\pulse_gen.c - - - pulse_gen.h - 5 - ..\..\..\pulse_gen.h - i2c_manager.c 1 @@ -4621,16 +4611,6 @@ 5 ..\..\..\debug_print.h - - pulse_gen.c - 1 - ..\..\..\pulse_gen.c - - - pulse_gen.h - 5 - ..\..\..\pulse_gen.h - i2c_manager.c 1 diff --git a/project/ble_peripheral/ble_app_bladder_patch/pulse_gen.c b/project/ble_peripheral/ble_app_bladder_patch/pulse_gen.c deleted file mode 100644 index f5bd98b..0000000 --- a/project/ble_peripheral/ble_app_bladder_patch/pulse_gen.c +++ /dev/null @@ -1,182 +0,0 @@ -/******************************************************************************* - * @file pulse_gen.c - * @brief PWM Pulse Generator (Build-safe version) - * @author CandyPops Co. / ??? ???? - * @version V1.0.1 - * @date 2025-10-13 - ******************************************************************************/ - -/******************************************************************************* - * PWM 펄스 생성기 - * - * === 현재 상태 === - * SKIP_PWM 매크로가 정의되어 있어 PWM 기능이 비활성화됨. - * init/start/stop 함수는 모두 Stub으로, - * 로그만 출력하고 실제 PWM 동작은 하지 않는다. - * 빌드 호환성을 위해 함수 인터페이스만 유지. - * - * === 실제 구현 (SKIP_PWM 미정의 시) === - * nrfx_pwm 드라이버 + app_timer를 사용하여 3핀(P28/P29/P30) PWM 제어. - * PWM 인스턴스 0, 16MHz 클럭, TOP=8, 개별 채널 로드 모드. - * 6단계 시퀀스로 채널별 듀티 사이클 조절. - * app_timer(10ms)로 주기적 반복 재생. - * - * === 비활성화 사유 === - * 현재 프로젝트에서는 피에조 구동을 dr_piezo 드라이버가 담당하므로 - * 이 PWM 펄스 생성기는 사용하지 않음. - ******************************************************************************/ - -#define SKIP_PWM // ? ?? ???? PWM ?? ??? - -#include "pulse_gen.h" -#include "debug_print.h" -#include "app_timer.h" -#include "nrf_log.h" - -#ifdef SKIP_PWM -/* ========================================================================== */ -/* PWM 비활성화 모드: Stub 구현 (로그만 출력, 실제 동작 없음) */ -/* ========================================================================== */ - -/* Stub 초기화: 아무 동작 없이 성공 반환 */ -ret_code_t pulse_gen_init(void) -{ - DBG_PRINTF("[PWM] skipped init\r\n"); - return NRF_SUCCESS; -} - -/* Stub 시작: 아무 동작 없음 */ -void pulse_gen_start(void) -{ - DBG_PRINTF("[PWM] skipped start\r\n"); -} - -/* Stub 정지: 아무 동작 없음 */ -void pulse_gen_stop(void) -{ - DBG_PRINTF("[PWM] skipped stop\r\n"); -} - -#else /* ==================================================================== */ -/* 실제 PWM 구현 코드 (SKIP_PWM 미정의 시에만 컴파일됨) */ -/* ========================================================================== */ - -#include "nrfx_pwm.h" - -/* --- 설정값 --- */ -#define PULSE_PIN_1 28 /* PWM 출력 핀 1 (P0.28) */ -#define PULSE_PIN_2 29 /* PWM 출력 핀 2 (P0.29) */ -#define PULSE_PIN_3 30 /* PWM 출력 핀 3 (P0.30) */ -#define PULSE_DELAY_MS 10 /* 반복 재생 간격 (ms) */ - -#define PWM_INSTANCE_ID 0 /* PWM 하드웨어 인스턴스 번호 */ -#define PWM_TOP_VALUE 8 /* PWM 카운터 최대값 (듀티 사이클 분해능) */ -#define SEQUENCE_LENGTH 6 /* PWM 시퀀스 단계 수 */ - -static nrfx_pwm_t m_pwm = NRFX_PWM_INSTANCE(PWM_INSTANCE_ID); /* PWM 인스턴스 */ -APP_TIMER_DEF(m_pulse_delay_timer_id); /* 반복 재생용 앱 타이머 */ -static volatile bool m_pulses_running = false; /* 펄스 생성 동작 중 플래그 */ - -/* PWM 시퀀스 데이터: 6단계에 걸쳐 3채널의 듀티 사이클을 개별 설정 */ -static nrf_pwm_values_individual_t m_pulse_seq_values[SEQUENCE_LENGTH]; -static nrf_pwm_sequence_t const m_pulse_sequence = -{ - .values.p_individual = m_pulse_seq_values, - .length = NRF_PWM_VALUES_LENGTH(m_pulse_seq_values), - .repeats = 0, /* 각 단계 반복 없음 */ - .end_delay = 0 /* 시퀀스 종료 후 추가 지연 없음 */ -}; - -/* -------------------------------------------------------------------------- */ -/* 내부 핸들러 함수 */ -/* -------------------------------------------------------------------------- */ - -/* - * PWM 시퀀스 값 초기화 - * 6단계에 걸쳐 CH0/CH1/CH2의 듀티 사이클을 교대 설정: - * 단계0: CH0=100%, CH1=0, CH2=0 - * 단계1: CH0=0, CH1=100%, CH2=0 - * 단계2: CH0=100%, CH1=0, CH2=0 - * 단계3: CH0=0, CH1=100%, CH2=0 - * 단계4: CH0=0, CH1=0, CH2=0 (모두 OFF) - * 단계5: CH0=0, CH1=0, CH2=100% - */ -static void prepare_pulse_sequence(void) -{ - m_pulse_seq_values[0].channel_0 = PWM_TOP_VALUE; m_pulse_seq_values[0].channel_1 = 0; m_pulse_seq_values[0].channel_2 = 0; - m_pulse_seq_values[1].channel_0 = 0; m_pulse_seq_values[1].channel_1 = PWM_TOP_VALUE; m_pulse_seq_values[1].channel_2 = 0; - m_pulse_seq_values[2].channel_0 = PWM_TOP_VALUE; m_pulse_seq_values[2].channel_1 = 0; m_pulse_seq_values[2].channel_2 = 0; - m_pulse_seq_values[3].channel_0 = 0; m_pulse_seq_values[3].channel_1 = PWM_TOP_VALUE; m_pulse_seq_values[3].channel_2 = 0; - m_pulse_seq_values[4].channel_0 = 0; m_pulse_seq_values[4].channel_1 = 0; m_pulse_seq_values[4].channel_2 = 0; - m_pulse_seq_values[5].channel_0 = 0; m_pulse_seq_values[5].channel_1 = 0; m_pulse_seq_values[5].channel_2 = PWM_TOP_VALUE; -} - -/* 타이머 타임아웃 핸들러: m_pulses_running이면 PWM 시퀀스 1회 재생 후 타이머 재시작 */ -static void pulse_delay_timeout_handler(void * p_context) -{ - if (m_pulses_running) - { - (void)nrfx_pwm_simple_playback(&m_pwm, &m_pulse_sequence, 1, NRFX_PWM_FLAG_STOP); - (void)app_timer_start(m_pulse_delay_timer_id, APP_TIMER_TICKS(PULSE_DELAY_MS), NULL); - } -} - -/* -------------------------------------------------------------------------- */ -/* 공개 함수 */ -/* -------------------------------------------------------------------------- */ - -/* - * PWM 초기화: PWM 인스턴스 설정 + 앱 타이머 생성 - * PWM: 16MHz 클럭, UP 카운트 모드, TOP=8, 개별 채널 로드 - * 타이머: 단발(SINGLE_SHOT) 모드, 10ms 후 시퀀스 재생 - */ -ret_code_t pulse_gen_init(void) -{ - ret_code_t err_code; - - prepare_pulse_sequence(); - - nrfx_pwm_config_t const config = - { - .output_pins = - { - PULSE_PIN_1, - PULSE_PIN_2, - PULSE_PIN_3, - NRFX_PWM_PIN_NOT_USED - }, - .irq_priority = NRFX_PWM_DEFAULT_CONFIG_IRQ_PRIORITY, - .base_clock = NRF_PWM_CLK_16MHz, - .count_mode = NRF_PWM_MODE_UP, - .top_value = PWM_TOP_VALUE, - .load_mode = NRF_PWM_LOAD_INDIVIDUAL, - .step_mode = NRF_PWM_STEP_AUTO - }; - - err_code = nrfx_pwm_init(&m_pwm, &config, NULL); - if (err_code != NRF_SUCCESS) - return err_code; - - err_code = app_timer_create(&m_pulse_delay_timer_id, - APP_TIMER_MODE_SINGLE_SHOT, - pulse_delay_timeout_handler); - return err_code; -} - -/* 펄스 생성 시작: 플래그 설정 후 타임아웃 핸들러를 직접 호출하여 즉시 첫 재생 */ -void pulse_gen_start(void) -{ - if (m_pulses_running) return; /* 이미 동작 중이면 무시 */ - m_pulses_running = true; - pulse_delay_timeout_handler(NULL); /* 첫 번째 재생 즉시 시작 */ -} - -/* 펄스 생성 정지: 플래그 해제 + 타이머 정지 + PWM 즉시 정지 */ -void pulse_gen_stop(void) -{ - m_pulses_running = false; - app_timer_stop(m_pulse_delay_timer_id); - nrfx_pwm_stop(&m_pwm, true); /* true = 즉시 정지 (현재 시퀀스 중단) */ -} - -#endif /* SKIP_PWM */ diff --git a/project/ble_peripheral/ble_app_bladder_patch/pulse_gen.h b/project/ble_peripheral/ble_app_bladder_patch/pulse_gen.h deleted file mode 100644 index 5eadf41..0000000 --- a/project/ble_peripheral/ble_app_bladder_patch/pulse_gen.h +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * [한국어 설명] PWM 펄스 생성기 헤더 - * - * PWM 기반 펄스 생성 모듈의 공개 인터페이스. - * 현재 SKIP_PWM 매크로로 비활성화되어 있으며, Stub 구현만 동작함. - * 실제 구현 시 nrfx_pwm + app_timer로 3핀(P28/P29/P30) PWM 제어. - * - * 비활성화 사유: 피에조 구동은 dr_piezo 드라이버가 담당하므로 - * 이 PWM 모듈은 현재 프로젝트에서 사용하지 않음. - * 빌드 호환성을 위해 인터페이스만 유지. - ******************************************************************************/ - -#ifndef PULSE_GEN_H__ -#define PULSE_GEN_H__ - -#include -#include -#include "sdk_errors.h" - -/** - * @brief PWM 주변장치 및 app_timer를 초기화한다. - * (SKIP_PWM 정의 시 아무 동작 없이 NRF_SUCCESS 반환) - * - * @return NRF_SUCCESS on successful initialization, otherwise an error code. - */ -ret_code_t pulse_gen_init(void); - -/** - * @brief 반복 펄스 생성을 시작한다. - * 버스트 펄스를 생성하고, 수 ms 대기 후 반복. - * (SKIP_PWM 정의 시 아무 동작 없음) - */ -void pulse_gen_start(void); - -/** - * @brief 반복 펄스 생성을 정지한다. - * (SKIP_PWM 정의 시 아무 동작 없음) - */ -void pulse_gen_stop(void); - -#endif // PULSE_GEN_H__ - -