Files
QDAC-firmware/libraries/zf_driver/zf_driver_encoder.h

177 lines
7.4 KiB
C
Raw Normal View History

2023-12-11 21:45:06 +08:00
/*********************************************************************************************************************
* CH32V307VCT6 Opensourec Library <EFBFBD><EFBFBD><EFBFBD><EFBFBD>CH32V307VCT6 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڹٷ<EFBFBD> SDK <EFBFBD>ӿڵĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
* Copyright (c) 2022 SEEKFREE <EFBFBD><EFBFBD><EFBFBD>ɿƼ<EFBFBD>
*
* <EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>CH32V307VCT6 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* CH32V307VCT6 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GPL<EFBFBD><EFBFBD>GNU General Public License<EFBFBD><EFBFBD><EFBFBD><EFBFBD> GNUͨ<EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> GPL <EFBFBD>ĵ<EFBFBD>3<EFBFBD><EFBFBD><EFBFBD> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD>
*
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κεı<EFBFBD>֤
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><EFBFBD>ʺ<EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD>;<EFBFBD>ı<EFBFBD>֤
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD> GPL
*
* <EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD>յ<EFBFBD>һ<EFBFBD><EFBFBD> GPL <EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><https://www.gnu.org/licenses/>
*
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD> GPL3.0 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤Э<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>İ
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD>İ<EFBFBD><EFBFBD><EFBFBD> libraries/doc <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> GPL3_permission_statement.txt <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libraries <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> LICENSE <EFBFBD>ļ<EFBFBD>
* <EFBFBD><EFBFBD>ӭ<EFBFBD><EFBFBD>λʹ<EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<EFBFBD><EFBFBD>İ<EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> zf_driver_encoder
* <EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ɶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޹<EFBFBD>˾
* <EFBFBD><EFBFBD><EFBFBD>Ϣ <EFBFBD> libraries/doc <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> version <EFBFBD>ļ<EFBFBD> <EFBFBD>˵<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MounRiver Studio V1.8.1
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨ CH32V307VCT6
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
*
* <EFBFBD>޸ļ<EFBFBD>¼
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ע
* 2022-09-15 <EFBFBD><EFBFBD>W first version
********************************************************************************************************************/
#ifndef _zf_driver_encoder_h
#define _zf_driver_encoder_h
#include "ch32v30x_rcc.h"
#include "ch32v30x_gpio.h"
#include "ch32v30x_tim.h"
#include "zf_common_debug.h"
#include "zf_common_typedef.h"
typedef enum // TIMER<45><52><EFBFBD><EFBFBD>ö<EFBFBD><C3B6>
{
// MAP0 Ĭ<><C4AC>ӳ<EFBFBD><D3B3>
// MAP1 <20><>ӳ<EFBFBD><D3B3>
// MAP2 <20><><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3>
// MAP3 <20><>ȫӳ<C8AB><D3B3>
//----------<2D><>ʱ<EFBFBD><CAB1>1----------
// <20><><EFBFBD><EFBFBD>ΪTIM1<4D><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// <20><><EFBFBD>磺TIM1_ENCOEDER_MAP_CH1_A8<41><38>TIM1_ENCOEDER_MAP_CH2_E11<31><31><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ʹ<EFBFBD>á<EFBFBD>
// ֻ<><D6BB><EFBFBD><EFBFBD>TIM1_ENCOEDER_MAP_CH1_A8<41><38>TIM1_ENCOEDER_MAP_CH2_A9 ͬ<><CDAC>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ʹ<EFBFBD>ã<EFBFBD>
// <20><><EFBFBD><EFBFBD>TIM1_ENCOEDER_MAP_CH1_E9<45><39>TIM1_ENCOEDER_MAP_CH2_E11 ͬ<><CDAC>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ʹ<EFBFBD><CAB9>
// Ĭ<><C4AC>ӳ<EFBFBD><D3B3>
TIM1_ENCOEDER_MAP0_CH1_A8 = 0x0000 | A8, // 0x 0[TIM1] 0[MAP0] 08[A8 ]
TIM1_ENCOEDER_MAP0_CH2_A9 = 0x0000 | A9, // 0x 0[TIM1] 0[MAP0] 09[A9 ]
// <20><><EFBFBD><EFBFBD>ΪTIM1<4D><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// <20><>ȫӳ<C8AB><D3B3>
TIM1_ENCOEDER_MAP3_CH1_E9 = 0x0300 | E9, // 0x 0[TIM1] 3[MAP3] 89[E9 ]
TIM1_ENCOEDER_MAP3_CH2_E11 = 0x0300 | E11, // 0x 0[TIM1] 3[MAP3] 8B[E11]
//----------<2D><>ʱ<EFBFBD><CAB1>2----------
// <20><><EFBFBD><EFBFBD>ΪTIM2<4D><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// Ĭ<><C4AC>ӳ<EFBFBD><D3B3>
TIM2_ENCOEDER_MAP0_CH1_A0 = 0x1000 | A0, // 0x 1[TIM2] 0[MAP0] 00[A0 ]
TIM2_ENCOEDER_MAP0_CH2_A1 = 0x1000 | A1, // 0x 1[TIM2] 0[MAP0] 01[A1 ]
// <20><><EFBFBD><EFBFBD>ΪTIM2<4D><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// <20><>ӳ<EFBFBD><D3B3>
TIM2_ENCOEDER_MAP1_CH1_A15 = 0x1100 | A15, // 0x 1[TIM2] 1[MAP1] 0F[A15]
TIM2_ENCOEDER_MAP1_CH2_B3 = 0x1100 | B3, // 0x 1[TIM2] 1[MAP1] 23[B3 ]
//----------<2D><>ʱ<EFBFBD><CAB1>3----------
// <20><><EFBFBD><EFBFBD>ΪTIM3<4D><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// Ĭ<><C4AC>ӳ<EFBFBD><D3B3>
TIM3_ENCOEDER_MAP0_CH1_A6 = 0x2000 | A6, // 0x 2[TIM3] 0[MAP0] 06[A6 ]
TIM3_ENCOEDER_MAP0_CH2_A7 = 0x2000 | A7, // 0x 2[TIM3] 0[MAP0] 07[A7 ]
// <20><><EFBFBD><EFBFBD>ΪTIM3<4D><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// <20><><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3>
TIM3_ENCOEDER_MAP2_CH1_B4 = 0x2200 | B4, // 0x 2[TIM3] 2[MAP2] 24[B4 ]
TIM3_ENCOEDER_MAP2_CH2_B5 = 0x2200 | B5, // 0x 2[TIM3] 2[MAP2] 25[B5 ]
// <20><><EFBFBD><EFBFBD>ΪTIM3<4D><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// <20><>ȫӳ<C8AB><D3B3>
TIM3_ENCOEDER_MAP3_CH1_C6 = 0x2300 | C6, // 0x 2[TIM3] 3[MAP3] 46[C6 ]
TIM3_ENCOEDER_MAP3_CH2_C7 = 0x2300 | C7, // 0x 2[TIM3] 3[MAP3] 47[C7 ]
//----------<2D><>ʱ<EFBFBD><CAB1>4----------
// <20><><EFBFBD><EFBFBD>ΪTIM4<4D><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// Ĭ<><C4AC>ӳ<EFBFBD><D3B3>
TIM4_ENCOEDER_MAP0_CH1_B6 = 0x3000 | B6, // 0x 3[TIM4] 0[MAP0] 26[B6 ]
TIM4_ENCOEDER_MAP0_CH2_B7 = 0x3000 | B7, // 0x 3[TIM4] 0[MAP0] 27[B7 ]
// <20><><EFBFBD><EFBFBD>ΪTIM4<4D><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// <20>ض<EFBFBD><D8B6><EFBFBD>
TIM4_ENCOEDER_MAP1_CH1_D12 = 0x3100 | D12, // 0x 3[TIM4] 1[MAP1] 6C[D12]
TIM4_ENCOEDER_MAP1_CH2_D13 = 0x3100 | D13, // 0x 3[TIM4] 1[MAP1] 6D[D13]
//----------<2D><>ʱ<EFBFBD><CAB1>5----------
// <20><><EFBFBD><EFBFBD>ΪTIM5<4D><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// Ĭ<><C4AC>ӳ<EFBFBD><D3B3>
TIM5_ENCOEDER_MAP0_CH1_A0 = 0x4000 | A0, // 0x 4[TIM5] 0[MAP0] 00[A0 ]
TIM5_ENCOEDER_MAP0_CH2_A1 = 0x4000 | A1, // 0x 4[TIM5] 0[MAP0] 01[A1 ]
//----------<2D><>ʱ<EFBFBD><CAB1>8----------
// <20><><EFBFBD><EFBFBD>ΪTIM8<4D><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// Ĭ<><C4AC>ӳ<EFBFBD><D3B3>
TIM8_ENCOEDER_MAP0_CH1_C6 = 0x7000 | C6, // 0x 7[TIM8] 0[MAP0] 46[C6 ]
TIM8_ENCOEDER_MAP0_CH2_C7 = 0x7000 | C7, // 0x 7[TIM8] 0[MAP0] 47[C7 ]
// <20><><EFBFBD><EFBFBD>ΪTIM8<4D><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// <20><>ӳ<EFBFBD><D3B3>
TIM8_ENCOEDER_MAP1_CH1_B6 = 0x7100 | B6, // 0x 7[TIM8] 1[MAP1] 26[B6 ]
TIM8_ENCOEDER_MAP1_CH2_B7 = 0x7100 | B7, // 0x 7[TIM8] 1[MAP1] 27[B7 ]
//----------<2D><>ʱ<EFBFBD><CAB1>9----------
// <20><><EFBFBD><EFBFBD>ΪTIM9<4D><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// Ĭ<><C4AC>ӳ<EFBFBD><D3B3>
TIM9_ENCOEDER_MAP0_CH1_A2 = 0x8000 | A2, // 0x 8[TIM9] 0[MAP0] 02[A2 ]
TIM9_ENCOEDER_MAP0_CH2_A3 = 0x8000 | A3, // 0x 8[TIM9] 0[MAP0] 03[A3 ]
// <20><><EFBFBD><EFBFBD>ΪTIM9<4D><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// <20><>ȫӳ<C8AB><D3B3>
TIM9_ENCOEDER_MAP3_CH1_D9 = 0x8300 | D9, // 0x 8[TIM9] 3[MAP3] 69[D9 ]
TIM9_ENCOEDER_MAP3_CH2_D11 = 0x8300 | D11, // 0x 8[TIM9] 3[MAP3] 6B[D11]
//----------<2D><>ʱ<EFBFBD><CAB1>10----------
// <20><><EFBFBD><EFBFBD>ΪTIM10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// Ĭ<><C4AC>ӳ<EFBFBD><D3B3>
TIM10_ENCOEDER_MAP0_CH1_B8 = 0x9000 | B8, // 0x 9[TIM10] 0[MAP0] 28[B8]
TIM10_ENCOEDER_MAP0_CH2_B9 = 0x9000 | B9, // 0x 9[TIM10] 0[MAP0] 29[B9]
// <20><><EFBFBD><EFBFBD>ΪTIM10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// <20><><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3>
TIM10_ENCOEDER_MAP1_CH1_B3 = 0x9100 | B3, // 0x 9[TIM10] 1[MAP1] 23[B3]
TIM10_ENCOEDER_MAP1_CH2_B4 = 0x9100 | B4, // 0x 9[TIM10] 1[MAP1] 24[B4]
// <20><><EFBFBD><EFBFBD>ΪTIM10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>á<EFBFBD>
// <20><>ȫӳ<C8AB><D3B3>
TIM10_ENCOEDER_MAP3_CH1_D1 = 0x9300 | D1, // 0x 9[TIM10] 3[MAP3] 41[D1]
TIM10_ENCOEDER_MAP3_CH2_D3 = 0x9300 | D3, // 0x 9[TIM10] 3[MAP3] 43[D3]
}encoder_channel_enum;
typedef enum
{
TIM1_ENCOEDER = 0,
TIM2_ENCOEDER,
TIM3_ENCOEDER,
TIM4_ENCOEDER,
TIM5_ENCOEDER,
TIM8_ENCOEDER = 7,
TIM9_ENCOEDER,
TIM10_ENCOEDER,
}encoder_index_enum;
int16 encoder_get_count (encoder_index_enum encoder_n);
void encoder_clear_count (encoder_index_enum encoder_n);
void encoder_quad_init (encoder_index_enum encoder_n, encoder_channel_enum ch1_pin, encoder_channel_enum ch2_pin);
void encoder_dir_init (encoder_index_enum encoder_n, encoder_channel_enum ch1_pin, encoder_channel_enum ch2_pin);
#endif