R128开发指南:中断方式驱动旋转编码器

旋转编码器是一种位置传感器,可将旋钮的角位置(旋转)转换为用于确定旋钮旋转方向的输出信号。
由于其坚固性和良好的数字控制;它们被用于许多应用中,包括机器人技术,cnc机器和打印机。
旋转编码器有两种类型-绝对式和增量式。绝对编码器为我们提供旋钮的精确位置(以度为单位),而增量编码器报告轴已移动了多少增量。
编码器内部是一个槽形磁盘,该磁盘连接到公共接地引脚c以及两个接触针a和b。旋转旋钮时,a和b根据旋转旋钮的方向以特定顺序与公共接地引脚c接触。
当它们接触公共接地时,它们会产生信号。当一个引脚先于另一引脚接触时,这些信号就会彼此错开90°。这称为正交编码。
顺时针旋转旋钮时,首先连接a引脚,然后连接b引脚。逆时针旋转旋钮时,首先连接b引脚,然后连接a引脚。
通过跟踪每个引脚何时与地面连接或与地面断开,我们可以使用这些信号变化来确定旋钮的旋转方向。您可以通过在a更改状态时观察b的状态来做到这一点。
我们搭建电路,如下:
1
载入方案
简介
我们使用的开发板是 r128-devkit,需要开发 c906 核心的应用程序,所以载入方案选择r128s2_module_c906。
$ source envsetup.sh $ lunch_rtos 1  
2
gpio驱动
勾选
mrtos_menuconfig 找到下列驱动
drivers options  --->    soc related device drivers  --->            gpio devices --->                [*] enable gpio driver                [*] enbale gpio hal apis test command  
3
程序编写
简介
打开你喜欢的编辑器,在以下目录修改文件:
lichee/rtos/projects/r128s2/module_c906/src/main.c  
4
头文件
引入
#include 5
使用gpio
配置引脚
1、配置 gpio 的上下拉状态
使用 
hal_gpio_set_pull (gpio_pin_t pin, gpio_pull_status_t pull);来设置。这里我们设置 pa25 引脚为默认上拉状态。hal_gpio_set_pull(gpioa(25), gpio_pull_up);  
2、配置 gpio 输入输出模式
使用 
hal_gpio_set_direction (gpio_pin_t pin, gpio_direction_t direction); 来设置 gpio 的输入输出模式,这里配置为输入模式。hal_gpio_set_direction(gpioa(25), gpio_direction_input);  
3、配置 gpio 的 mux 功能
gpio 通常有多种功能,需要配置 mux 选择需要的功能,使用 
hal_gpio_pinmux_set_function (gpio_pin_t pin, gpio_muxsel_t function_index);来设置 gpio 的复用功能,这里配置为gpio 输入模式(gpio_muxsel_in)hal_gpio_pinmux_set_function(gpioa(25), gpio_muxsel_in);  
4、获取 gpio 的电平
使用 
int hal_gpio_get_data (gpio_pin_t pin, gpio_data_t *data);来获取 gpio 的电平gpio_data_t gpio_data;hal_gpio_get_data(gpioa(25), &gpio_data);  
5、申请配置中断
使用


vivoX27手机全面评测 究竟怎么样
凯尔达发布自主机器人“单柜双机”解决方案
结合AI和机器学习,物联网创建智能数字生态系统
Arduino电机控制罩的制作
OPPO Reno3 Pro 5G搭载骁龙765G,可支持网络智能切换
R128开发指南:中断方式驱动旋转编码器
欧姆龙自动化业务三个层次讲述了将智能制造落到实处的精髓
串口屏解决方案:大彩串口屏在环境检测设备上的应用
茶多酚检测仪的操作步骤
苹果13promax起售价格
关于医用电源的解析及其选用标准详细介绍
三成企业降薪!中国芯上市公司人均薪酬排行榜出炉
美国推出新法案限制华为,此举将打击华为全球5G开发计划
世强与先楫半导体正式签署代理协议
TCL推出首款可滚动扩展显示屏的智能手机
Cadence获得TSMC的“客户首选奖”
高密度LED显示屏的各种工艺问题解析
深度解析雷神流层散射通信系统技术原理
Mavenir通过电信管理论坛计划带来动态网络切片创新
存储大战:西部数据如何在竞争中立于不败之地?