7回答

0收藏

360度旋转编码器模块 学习笔记

#开源分享 #开源分享 7445 人阅读 | 7 人回复 | 2015-11-07

本帖最后由 wambob 于 2015-11-7 22:56 编辑

收到360度旋转编码器模块 ,模块介绍如下
https://www.cirmall.com/bbs/thread-44824-1-1.html
周末开始鼓捣。
硬件:1.360度旋转编码器模块
           2.FRDM-KL02

编码器和FRDM-kl02连接: CLK-----PTA12
                                          DT-------PTB5
                                          SW-------暂时没接
                                          + ---------+5
                                         GND---------GND
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include "gpio.h"
  4. #include "common.h"
  5. #include "uart.h"
  6. #define KEY3_PORT   HW_GPIOA
  7. #define KEY3_PIN    12
复制代码
  1. #define KEY1_PORT   HW_GPIOB          #define KEY1_PIN    5
复制代码
  1. void PORTA_IRQHandler(void)
  2. {
  3.    
  4.        if(PORTA_ISFR == (1<<12)) //KEY4 PTA12 上升下降沿中断
  5.        {
  6.         PORTA_PCR12 |= PORT_PCR_ISF_MASK;
  7.        if( GPIO_ReadBit(HW_GPIOA, 12)==0)
  8.        {  if( GPIO_ReadBit(HW_GPIOB, 5)==0)
  9.          num++;
  10.        }
  11.          else
  12.          {
  13. if( GPIO_ReadBit(HW_GPIOB, 5)==0)
  14.             num--;
  15.           }  

  16.        }

  17. }
复制代码

两相没标,实验结果为,顺时针 num--,逆时针++,只要把两相换一下,可以换过来。

分享到:
回复

使用道具 举报

回答|共 7 个

倒序浏览

沙发

wambob

发表于 2015-11-7 23:26:45 | 只看该作者

丢失的部分代码
  1. extern long int num;
  2. int main(void)
  3. {
  4. DelayInit();
  5. GPIO_QuickInit(KEY1_PORT, KEY1_PIN, kGPIO_Mode_IPU);
  6. GPIO_QuickInit(KEY3_PORT, KEY3_PIN, kGPIO_Mode_IPU);
  7. UART_QuickInit(UART0_RX_B2_TX_B1, 9600);
  8. printf("360旋转编码器 demo!\r\n");
  9. GPIO_ITDMAConfig(KEY3_PORT, 12, kGPIO_IT_RisingFallingEdge, true);
  10. while(1)
  11. {
  12. printf("%ld \r\n",num);
  13. }
复制代码
板凳

?[Wait...]?&

发表于 2015-11-7 23:42:22 | 只看该作者

可以用状态机的方式 把左右旋转以及按下一起读出来
地板

鸿鹄部落

发表于 2015-11-8 10:58:40 | 只看该作者

回头用FPGA驱动玩玩,哈哈
5#

wambob

发表于 2015-11-8 11:10:39 | 只看该作者

鸿鹄部落 发表于 2015-11-8 10:58
回头用FPGA驱动玩玩,哈哈

没玩过FPGA            
6#

wambob

发表于 2015-11-8 11:18:13 | 只看该作者

?[Wait...]?& 发表于 2015-11-7 23:42
可以用状态机的方式 把左右旋转以及按下一起读出来

这个也可在中断里实现
7#

?[Wait...]?&

发表于 2015-11-8 22:10:15 | 只看该作者

wambob 发表于 2015-11-8 11:18
这个也可在中断里实现

恩 是的     
8#

liujincai

发表于 2015-11-9 09:01:49 | 只看该作者

楼主上笔记好快啊,学习
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条