Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
rt-thread
提交
c1168675
R
rt-thread
项目概览
BaiXuePrincess
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c1168675
编写于
9月 24, 2019
作者:
T
tangweikang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[bsp][stm32][driver][drv_pulse_encoder.c] code style
上级
f1fe6479
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
72 addition
and
62 deletion
+72
-62
bsp/stm32/libraries/HAL_Drivers/config/f1/pulse_encoder_config.h
...32/libraries/HAL_Drivers/config/f1/pulse_encoder_config.h
+20
-16
bsp/stm32/libraries/HAL_Drivers/drv_pulse_encoder.c
bsp/stm32/libraries/HAL_Drivers/drv_pulse_encoder.c
+52
-46
未找到文件。
bsp/stm32/libraries/HAL_Drivers/config/f1/pulse_encoder_config.h
浏览文件 @
c1168675
...
...
@@ -19,40 +19,44 @@ extern "C" {
#ifdef BSP_USING_PULSE_ENCODER1
#ifndef PULSE_ENCODER1_CONFIG
#define PULSE_ENCODER1_CONFIG \
{ \
.tim_handler.Instance = TIM1, \
.name = "pulse1" \
#define PULSE_ENCODER1_CONFIG \
{ \
.tim_handler.Instance = TIM1, \
.encoder_irqn = TIM1_UP_IRQn, \
.name = "pulse1" \
}
#endif
/* PULSE_ENCODER1_CONFIG */
#endif
/* BSP_USING_PULSE_ENCODER1 */
#ifdef BSP_USING_PULSE_ENCODER2
#ifndef PULSE_ENCODER2_CONFIG
#define PULSE_ENCODER2_CONFIG \
{ \
.tim_handler.Instance = TIM2, \
.name = "pulse2" \
#define PULSE_ENCODER2_CONFIG \
{ \
.tim_handler.Instance = TIM2, \
.encoder_irqn = TIM2_IRQn, \
.name = "pulse2" \
}
#endif
/* PULSE_ENCODER2_CONFIG */
#endif
/* BSP_USING_PULSE_ENCODER2 */
#ifdef BSP_USING_PULSE_ENCODER3
#ifndef PULSE_ENCODER3_CONFIG
#define PULSE_ENCODER3_CONFIG \
{ \
.tim_handler.Instance = TIM3, \
.name = "pulse3" \
#define PULSE_ENCODER3_CONFIG \
{ \
.tim_handler.Instance = TIM3, \
.encoder_irqn = TIM3_IRQn, \
.name = "pulse3" \
}
#endif
/* PULSE_ENCODER3_CONFIG */
#endif
/* BSP_USING_PULSE_ENCODER3 */
#ifdef BSP_USING_PULSE_ENCODER4
#ifndef PULSE_ENCODER4_CONFIG
#define PULSE_ENCODER4_CONFIG \
{ \
.tim_handler.Instance = TIM4, \
.name = "pulse4" \
#define PULSE_ENCODER4_CONFIG \
{ \
.tim_handler.Instance = TIM4, \
.encoder_irqn = TIM4_IRQn, \
.name = "pulse4" \
}
#endif
/* PULSE_ENCODER4_CONFIG */
#endif
/* BSP_USING_PULSE_ENCODER4 */
...
...
bsp/stm32/libraries/HAL_Drivers/drv_pulse_encoder.c
浏览文件 @
c1168675
...
...
@@ -51,7 +51,7 @@ struct stm32_pulse_encoder_device
struct
rt_pulse_encoder_device
pulse_encoder
;
TIM_HandleTypeDef
tim_handler
;
IRQn_Type
encoder_irqn
;
volatile
rt_int32_t
over_under_flowcount
;
rt_int32_t
over_under_flowcount
;
char
*
name
;
};
...
...
@@ -82,7 +82,7 @@ rt_err_t pulse_encoder_init(struct rt_pulse_encoder_device *pulse_encoder)
TIM_Encoder_InitTypeDef
sConfig
;
TIM_MasterConfigTypeDef
sMasterConfig
;
struct
stm32_pulse_encoder_device
*
stm32_device
;
stm32_device
=
rt_container_of
(
pulse_encoder
,
struct
stm32_pulse_encoder_device
,
pulse_encoder
)
;
stm32_device
=
(
struct
stm32_pulse_encoder_device
*
)
pulse_encoder
;
stm32_device
->
tim_handler
.
Init
.
Prescaler
=
0
;
stm32_device
->
tim_handler
.
Init
.
CounterMode
=
TIM_COUNTERMODE_UP
;
...
...
@@ -133,7 +133,7 @@ rt_err_t pulse_encoder_init(struct rt_pulse_encoder_device *pulse_encoder)
rt_err_t
pulse_encoder_clear_count
(
struct
rt_pulse_encoder_device
*
pulse_encoder
)
{
struct
stm32_pulse_encoder_device
*
stm32_device
;
stm32_device
=
rt_container_of
(
pulse_encoder
,
struct
stm32_pulse_encoder_device
,
pulse_encoder
)
;
stm32_device
=
(
struct
stm32_pulse_encoder_device
*
)
pulse_encoder
;
stm32_device
->
over_under_flowcount
=
0
;
__HAL_TIM_SET_COUNTER
(
&
stm32_device
->
tim_handler
,
0
);
return
RT_EOK
;
...
...
@@ -142,15 +142,15 @@ rt_err_t pulse_encoder_clear_count(struct rt_pulse_encoder_device *pulse_encoder
rt_int32_t
pulse_encoder_get_count
(
struct
rt_pulse_encoder_device
*
pulse_encoder
)
{
struct
stm32_pulse_encoder_device
*
stm32_device
;
stm32_device
=
rt_container_of
(
pulse_encoder
,
struct
stm32_pulse_encoder_device
,
pulse_encoder
)
;
return
(
rt_int32_t
)((
rt_int16_t
)
__HAL_TIM_GET_COUNTER
(
&
stm32_device
->
tim_handler
)
+
stm32_device
->
over_under_flowcount
*
AUTO_RELOAD_VALUE
);
stm32_device
=
(
struct
stm32_pulse_encoder_device
*
)
pulse_encoder
;
return
(
rt_int32_t
)((
rt_int16_t
)
__HAL_TIM_GET_COUNTER
(
&
stm32_device
->
tim_handler
)
+
stm32_device
->
over_under_flowcount
*
AUTO_RELOAD_VALUE
);
}
rt_err_t
pulse_encoder_control
(
struct
rt_pulse_encoder_device
*
pulse_encoder
,
rt_uint32_t
cmd
,
void
*
args
)
{
rt_err_t
result
;
struct
stm32_pulse_encoder_device
*
stm32_device
;
stm32_device
=
rt_container_of
(
pulse_encoder
,
struct
stm32_pulse_encoder_device
,
pulse_encoder
)
;
stm32_device
=
(
struct
stm32_pulse_encoder_device
*
)
pulse_encoder
;
result
=
RT_EOK
;
...
...
@@ -174,11 +174,11 @@ rt_err_t pulse_encoder_control(struct rt_pulse_encoder_device *pulse_encoder, rt
void
pulse_encoder_update_isr
(
struct
stm32_pulse_encoder_device
*
device
)
{
/* TIM Update event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_UPDATE
)
!=
RESET
)
{
/* TIM Update event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_UPDATE
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_IT_UPDATE
);
if
(
__HAL_TIM_IS_TIM_COUNTING_DOWN
(
&
device
->
tim_handler
))
if
(
__HAL_TIM_IS_TIM_COUNTING_DOWN
(
&
device
->
tim_handler
))
{
device
->
over_under_flowcount
--
;
}
...
...
@@ -186,46 +186,52 @@ void pulse_encoder_update_isr(struct stm32_pulse_encoder_device *device)
{
device
->
over_under_flowcount
++
;
}
}
/* Capture compare 1 event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_CC1
)
!=
RESET
)
{
}
/* Capture compare 1 event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_CC1
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_IT_CC1
);
}
/* Capture compare 2 event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_CC2
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_IT_CC2
);
}
/* Capture compare 3 event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_CC3
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_IT_CC3
);
}
/* Capture compare 4 event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_CC4
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_IT_CC4
);
}
/* TIM Break input event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_BREAK
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_IT_BREAK
);
}
/* TIM Trigger detection event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_TRIGGER
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_IT_TRIGGER
);
}
/* TIM commutation event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_COM
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_FLAG_COM
);
}
}
/* Capture compare 2 event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_CC2
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_IT_CC2
);
}
/* Capture compare 3 event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_CC3
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_IT_CC3
);
}
/* Capture compare 4 event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_CC4
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_IT_CC4
);
}
/* TIM Break input event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_BREAK
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_IT_BREAK
);
}
/* TIM Trigger detection event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_TRIGGER
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_IT_TRIGGER
);
}
/* TIM commutation event */
if
(
__HAL_TIM_GET_FLAG
(
&
device
->
tim_handler
,
TIM_FLAG_COM
)
!=
RESET
)
{
__HAL_TIM_CLEAR_IT
(
&
device
->
tim_handler
,
TIM_FLAG_COM
);
}
}
#ifdef BSP_USING_PULSE_ENCODER1
void
TIM1_UP_TIM10_IRQHandler
(
void
)
#if defined(SOC_SERIES_STM32F4)
void
TIM1_UP_TIM10_IRQHandler
(
void
)
#elif defined(SOC_SERIES_STM32F1)
void
TIM1_UP_IRQHandler
(
void
)
#else
#error "Please check TIM1's IRQHandler"
#endif
{
/* enter interrupt */
rt_interrupt_enter
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录