OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2595|回复: 3

旋转编码器怎么实现快速旋转+10,快速旋转+1?

[复制链接]

23

主题

79

帖子

0

精华

高级会员

Rank: 4

积分
607
金钱
607
注册时间
2017-8-8
在线时间
145 小时
发表于 2018-8-2 10:59:56 | 显示全部楼层 |阅读模式
1金钱
旋转编码器,一圈20个脉冲,转一下数值+1
我要加到1000,要转50圈,太累了,
有没有办法实现快速旋转+10,慢速旋转+1?

最佳答案

查看完整内容[请看2#楼]

硬件实现不了就软件配合呀,弄个全局变量统计shu1加减的斜率,上一秒斜率大于阈值就shu1=shu1+100;小于阈值就恢复shu1=shu1+1;
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-8-2 10:59:57 | 显示全部楼层
lovewjl 发表于 2018-8-2 11:06
void scan_encoder(void)          //编码器扫描函数
{
static uint8_t Aold,Bold; //定义了两个变量用来储蓄上 ...

硬件实现不了就软件配合呀,弄个全局变量统计shu1加减的斜率,上一秒斜率大于阈值就shu1=shu1+100;小于阈值就恢复shu1=shu1+1;
回复

使用道具 举报

23

主题

79

帖子

0

精华

高级会员

Rank: 4

积分
607
金钱
607
注册时间
2017-8-8
在线时间
145 小时
 楼主| 发表于 2018-8-2 11:06:41 | 显示全部楼层
void scan_encoder(void)          //编码器扫描函数
{
static uint8_t Aold,Bold; //定义了两个变量用来储蓄上一次调用此方法是编码开关两引脚的电平
static uint8_t st; //定义了一个变量用来储蓄以前是否出现了两个引脚都为高电平的状态
        if (key3==1&&key4==1)
                st = 1; //
                        if(st) //如果st 为1 执行下面的步骤
                        {
                                if (key3==0&&key4==0)//如果当前编码开关的两个引脚都为底电平执行下面的步骤
                                {
                                        if(Bold) //为高说明编码开关在向减小的方向转
                                                {
                                                        st = 0;
                                                shu1++;
                                                }
                                        if(Aold) //为高说明编码开关在向加大的方向转
                                                {
                                                        st = 0;
                                                        shu1--;
                                                }       
                                }
                Aold = key3; //存储状态
                Bold = key4; //存储状态
                        }
}

这是目前的程序,
接的是普通I/O口,
函数放在定时器里,5m扫描一次,
怎么改进?
回复

使用道具 举报

19

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
608
金钱
608
注册时间
2017-9-21
在线时间
171 小时
发表于 2018-8-2 13:12:47 | 显示全部楼层
编码器都是定时器自动进行累加的你累啥
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 03:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表