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