1 /* 2 * Copyright (C) 2022-2024, Xiaohua Semiconductor Co., Ltd. 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2023-06-09 CDT first version 9 */ 10 11 #ifndef __PULSE_ENCODER_CONFIG_H__ 12 #define __PULSE_ENCODER_CONFIG_H__ 13 14 #include <rtthread.h> 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 #if defined(RT_USING_PULSE_ENCODER) 21 22 #ifdef BSP_USING_PULSE_ENCODER_TMRA_1 23 #ifndef PULSE_ENCODER_TMRA_1_CONFIG 24 #define PULSE_ENCODER_TMRA_1_CONFIG \ 25 { \ 26 .tmr_handler = CM_TMRA_1, \ 27 .u32PeriphClock = FCG2_PERIPH_TMRA_1, \ 28 .hw_count = \ 29 { \ 30 .u16CountUpCond = TMRA_CNT_UP_COND_CLKA_HIGH_CLKB_RISING, \ 31 .u16CountDownCond = TMRA_CNT_DOWN_COND_CLKB_HIGH_CLKA_RISING, \ 32 }, \ 33 .isr = \ 34 { \ 35 .enIntSrc_Ovf = INT_SRC_TMRA_1_OVF, \ 36 .enIRQn_Ovf = BSP_PULSE_ENCODER_TMRA_1_OVF_IRQ_NUM, \ 37 .u8Int_Prio_Ovf = BSP_PULSE_ENCODER_TMRA_1_OVF_IRQ_PRIO, \ 38 .enIntSrc_Udf = INT_SRC_TMRA_1_UDF, \ 39 .enIRQn_Udf = BSP_PULSE_ENCODER_TMRA_1_UDF_IRQ_NUM, \ 40 .u8Int_Prio_Udf = BSP_PULSE_ENCODER_TMRA_1_UDF_IRQ_PRIO, \ 41 }, \ 42 .u32PeriodValue = 1000UL, \ 43 .name = "pulse_a1" \ 44 } 45 #endif /* PULSE_ENCODER_TMRA_1_CONFIG */ 46 #endif /* BSP_USING_PULSE_ENCODER_TMRA_1 */ 47 48 #ifdef BSP_USING_PULSE_ENCODER_TMRA_2 49 #ifndef PULSE_ENCODER_TMRA_2_CONFIG 50 #define PULSE_ENCODER_TMRA_2_CONFIG \ 51 { \ 52 .tmr_handler = CM_TMRA_2, \ 53 .u32PeriphClock = FCG2_PERIPH_TMRA_2, \ 54 .hw_count = \ 55 { \ 56 .u16CountUpCond = TMRA_CNT_UP_COND_CLKA_HIGH_CLKB_RISING, \ 57 .u16CountDownCond = TMRA_CNT_DOWN_COND_CLKB_HIGH_CLKA_RISING, \ 58 }, \ 59 .isr = \ 60 { \ 61 .enIntSrc_Ovf = INT_SRC_TMRA_2_OVF, \ 62 .enIRQn_Ovf = BSP_PULSE_ENCODER_TMRA_2_OVF_IRQ_NUM, \ 63 .u8Int_Prio_Ovf = BSP_PULSE_ENCODER_TMRA_2_OVF_IRQ_PRIO, \ 64 .enIntSrc_Udf = INT_SRC_TMRA_2_UDF, \ 65 .enIRQn_Udf = BSP_PULSE_ENCODER_TMRA_2_UDF_IRQ_NUM, \ 66 .u8Int_Prio_Udf = BSP_PULSE_ENCODER_TMRA_2_UDF_IRQ_PRIO, \ 67 }, \ 68 .u32PeriodValue = 1000UL, \ 69 .name = "pulse_a2" \ 70 } 71 #endif /* PULSE_ENCODER_TMRA_2_CONFIG */ 72 #endif /* BSP_USING_PULSE_ENCODER_TMRA_2 */ 73 74 #ifdef BSP_USING_PULSE_ENCODER_TMRA_3 75 #ifndef PULSE_ENCODER_TMRA_3_CONFIG 76 #define PULSE_ENCODER_TMRA_3_CONFIG \ 77 { \ 78 .tmr_handler = CM_TMRA_3, \ 79 .u32PeriphClock = FCG2_PERIPH_TMRA_3, \ 80 .hw_count = \ 81 { \ 82 .u16CountUpCond = TMRA_CNT_UP_COND_CLKA_HIGH_CLKB_RISING, \ 83 .u16CountDownCond = TMRA_CNT_DOWN_COND_CLKB_HIGH_CLKA_RISING, \ 84 }, \ 85 .isr = \ 86 { \ 87 .enIntSrc_Ovf = INT_SRC_TMRA_3_OVF, \ 88 .enIRQn_Ovf = BSP_PULSE_ENCODER_TMRA_3_OVF_IRQ_NUM, \ 89 .u8Int_Prio_Ovf = BSP_PULSE_ENCODER_TMRA_3_OVF_IRQ_PRIO, \ 90 .enIntSrc_Udf = INT_SRC_TMRA_3_UDF, \ 91 .enIRQn_Udf = BSP_PULSE_ENCODER_TMRA_3_UDF_IRQ_NUM, \ 92 .u8Int_Prio_Udf = BSP_PULSE_ENCODER_TMRA_3_UDF_IRQ_PRIO, \ 93 }, \ 94 .u32PeriodValue = 1000UL, \ 95 .name = "pulse_a3" \ 96 } 97 #endif /* PULSE_ENCODER_TMRA_3_CONFIG */ 98 #endif /* BSP_USING_PULSE_ENCODER_TMRA_3 */ 99 100 #ifdef BSP_USING_PULSE_ENCODER_TMRA_4 101 #ifndef PULSE_ENCODER_TMRA_4_CONFIG 102 #define PULSE_ENCODER_TMRA_4_CONFIG \ 103 { \ 104 .tmr_handler = CM_TMRA_4, \ 105 .u32PeriphClock = FCG2_PERIPH_TMRA_4, \ 106 .hw_count = \ 107 { \ 108 .u16CountUpCond = TMRA_CNT_UP_COND_CLKA_HIGH_CLKB_RISING, \ 109 .u16CountDownCond = TMRA_CNT_DOWN_COND_CLKB_HIGH_CLKA_RISING, \ 110 }, \ 111 .isr = \ 112 { \ 113 .enIntSrc_Ovf = INT_SRC_TMRA_4_OVF, \ 114 .enIRQn_Ovf = BSP_PULSE_ENCODER_TMRA_4_OVF_IRQ_NUM, \ 115 .u8Int_Prio_Ovf = BSP_PULSE_ENCODER_TMRA_4_OVF_IRQ_PRIO, \ 116 .enIntSrc_Udf = INT_SRC_TMRA_4_UDF, \ 117 .enIRQn_Udf = BSP_PULSE_ENCODER_TMRA_4_UDF_IRQ_NUM, \ 118 .u8Int_Prio_Udf = BSP_PULSE_ENCODER_TMRA_4_UDF_IRQ_PRIO, \ 119 }, \ 120 .u32PeriodValue = 1000UL, \ 121 .name = "pulse_a4" \ 122 } 123 #endif /* PULSE_ENCODER_TMRA_4_CONFIG */ 124 #endif /* BSP_USING_PULSE_ENCODER_TMRA_4 */ 125 126 #ifdef BSP_USING_PULSE_ENCODER_TMRA_5 127 #ifndef PULSE_ENCODER_TMRA_5_CONFIG 128 #define PULSE_ENCODER_TMRA_5_CONFIG \ 129 { \ 130 .tmr_handler = CM_TMRA_5, \ 131 .u32PeriphClock = FCG2_PERIPH_TMRA_5, \ 132 .hw_count = \ 133 { \ 134 .u16CountUpCond = TMRA_CNT_UP_COND_CLKA_HIGH_CLKB_RISING, \ 135 .u16CountDownCond = TMRA_CNT_DOWN_COND_CLKB_HIGH_CLKA_RISING, \ 136 }, \ 137 .isr = \ 138 { \ 139 .enIntSrc_Ovf = INT_SRC_TMRA_5_OVF, \ 140 .enIRQn_Ovf = BSP_PULSE_ENCODER_TMRA_5_OVF_IRQ_NUM, \ 141 .u8Int_Prio_Ovf = BSP_PULSE_ENCODER_TMRA_5_OVF_IRQ_PRIO, \ 142 .enIntSrc_Udf = INT_SRC_TMRA_5_UDF, \ 143 .enIRQn_Udf = BSP_PULSE_ENCODER_TMRA_5_UDF_IRQ_NUM, \ 144 .u8Int_Prio_Udf = BSP_PULSE_ENCODER_TMRA_5_UDF_IRQ_PRIO, \ 145 }, \ 146 .u32PeriodValue = 1000UL, \ 147 .name = "pulse_a5" \ 148 } 149 #endif /* PULSE_ENCODER_TMRA_5_CONFIG */ 150 #endif /* BSP_USING_PULSE_ENCODER_TMRA_5 */ 151 152 #ifdef BSP_USING_PULSE_ENCODER_TMRA_6 153 #ifndef PULSE_ENCODER_TMRA_6_CONFIG 154 #define PULSE_ENCODER_TMRA_6_CONFIG \ 155 { \ 156 .tmr_handler = CM_TMRA_6, \ 157 .u32PeriphClock = FCG2_PERIPH_TMRA_6, \ 158 .hw_count = \ 159 { \ 160 .u16CountUpCond = TMRA_CNT_UP_COND_CLKA_HIGH_CLKB_RISING, \ 161 .u16CountDownCond = TMRA_CNT_DOWN_COND_CLKB_HIGH_CLKA_RISING, \ 162 }, \ 163 .isr = \ 164 { \ 165 .enIntSrc_Ovf = INT_SRC_TMRA_6_OVF, \ 166 .enIRQn_Ovf = BSP_PULSE_ENCODER_TMRA_6_OVF_IRQ_NUM, \ 167 .u8Int_Prio_Ovf = BSP_PULSE_ENCODER_TMRA_6_OVF_IRQ_PRIO, \ 168 .enIntSrc_Udf = INT_SRC_TMRA_6_UDF, \ 169 .enIRQn_Udf = BSP_PULSE_ENCODER_TMRA_6_UDF_IRQ_NUM, \ 170 .u8Int_Prio_Udf = BSP_PULSE_ENCODER_TMRA_6_UDF_IRQ_PRIO, \ 171 }, \ 172 .u32PeriodValue = 1000UL, \ 173 .name = "pulse_a6" \ 174 } 175 #endif /* PULSE_ENCODER_TMRA_6_CONFIG */ 176 #endif /* BSP_USING_PULSE_ENCODER_TMRA_6 */ 177 178 #ifdef BSP_USING_PULSE_ENCODER_TMR6_1 179 #ifndef PULSE_ENCODER_TMR6_1_CONFIG 180 #define PULSE_ENCODER_TMR6_1_CONFIG \ 181 { \ 182 .tmr_handler = CM_TMR6_1, \ 183 .u32PeriphClock = FCG2_PERIPH_TMR6_1, \ 184 .hw_count = \ 185 { \ 186 .u32CountUpCond = TMR6_CNT_UP_COND_PWMA_HIGH_PWMB_RISING, \ 187 .u32CountDownCond = TMR6_CNT_DOWN_COND_PWMB_HIGH_PWMA_RISING, \ 188 }, \ 189 .isr = \ 190 { \ 191 .enIntSrc_Ovf = INT_SRC_TMR6_1_OVF, \ 192 .enIRQn_Ovf = BSP_PULSE_ENCODER_TMR6_1_OVF_IRQ_NUM, \ 193 .u8Int_Prio_Ovf = BSP_PULSE_ENCODER_TMR6_1_OVF_IRQ_PRIO, \ 194 .enIntSrc_Udf = INT_SRC_TMR6_1_UDF, \ 195 .enIRQn_Udf = BSP_PULSE_ENCODER_TMR6_1_UDF_IRQ_NUM, \ 196 .u8Int_Prio_Udf = BSP_PULSE_ENCODER_TMR6_1_UDF_IRQ_PRIO, \ 197 }, \ 198 .u32PeriodValue = 1000UL, \ 199 .name = "pulse_61" \ 200 } 201 #endif /* PULSE_ENCODER_TMR6_1_CONFIG */ 202 #endif /* BSP_USING_PULSE_ENCODER_TMR6_1 */ 203 204 #ifdef BSP_USING_PULSE_ENCODER_TMR6_2 205 #ifndef PULSE_ENCODER_TMR6_2_CONFIG 206 #define PULSE_ENCODER_TMR6_2_CONFIG \ 207 { \ 208 .tmr_handler = CM_TMR6_2, \ 209 .u32PeriphClock = FCG2_PERIPH_TMR6_2, \ 210 .hw_count = \ 211 { \ 212 .u32CountUpCond = TMR6_CNT_UP_COND_PWMA_HIGH_PWMB_RISING, \ 213 .u32CountDownCond = TMR6_CNT_DOWN_COND_PWMB_HIGH_PWMA_RISING, \ 214 }, \ 215 .isr = \ 216 { \ 217 .enIntSrc_Ovf = INT_SRC_TMR6_2_OVF, \ 218 .enIRQn_Ovf = BSP_PULSE_ENCODER_TMR6_2_OVF_IRQ_NUM, \ 219 .u8Int_Prio_Ovf = BSP_PULSE_ENCODER_TMR6_2_OVF_IRQ_PRIO, \ 220 .enIntSrc_Udf = INT_SRC_TMR6_2_UDF, \ 221 .enIRQn_Udf = BSP_PULSE_ENCODER_TMR6_2_UDF_IRQ_NUM, \ 222 .u8Int_Prio_Udf = BSP_PULSE_ENCODER_TMR6_2_UDF_IRQ_PRIO, \ 223 }, \ 224 .u32PeriodValue = 1000UL, \ 225 .name = "pulse_62" \ 226 } 227 #endif /* PULSE_ENCODER_TMR6_2_CONFIG */ 228 #endif /* BSP_USING_PULSE_ENCODER_TMR6_2 */ 229 230 #ifdef BSP_USING_PULSE_ENCODER_TMR6_3 231 #ifndef PULSE_ENCODER_TMR6_3_CONFIG 232 #define PULSE_ENCODER_TMR6_3_CONFIG \ 233 { \ 234 .tmr_handler = CM_TMR6_3, \ 235 .u32PeriphClock = FCG2_PERIPH_TMR6_3, \ 236 .hw_count = \ 237 { \ 238 .u32CountUpCond = TMR6_CNT_UP_COND_PWMA_HIGH_PWMB_RISING, \ 239 .u32CountDownCond = TMR6_CNT_DOWN_COND_PWMB_HIGH_PWMA_RISING, \ 240 }, \ 241 .isr = \ 242 { \ 243 .enIntSrc_Ovf = INT_SRC_TMR6_3_OVF, \ 244 .enIRQn_Ovf = BSP_PULSE_ENCODER_TMR6_3_OVF_IRQ_NUM, \ 245 .u8Int_Prio_Ovf = BSP_PULSE_ENCODER_TMR6_3_OVF_IRQ_PRIO, \ 246 .enIntSrc_Udf = INT_SRC_TMR6_3_UDF, \ 247 .enIRQn_Udf = BSP_PULSE_ENCODER_TMR6_3_UDF_IRQ_NUM, \ 248 .u8Int_Prio_Udf = BSP_PULSE_ENCODER_TMR6_3_UDF_IRQ_PRIO, \ 249 }, \ 250 .u32PeriodValue = 1000UL, \ 251 .name = "pulse_63" \ 252 } 253 #endif /* PULSE_ENCODER_TMR6_3_CONFIG */ 254 #endif /* BSP_USING_PULSE_ENCODER_TMR6_3 */ 255 256 #endif /* RT_USING_PULSE_ENCODER */ 257 258 #endif /* __PULSE_ENCODER_CONFIG_H__ */ 259