查看: 6643|回复: 7

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

[复制链接]
  • TA的每日心情
    奋斗
    2020-5-27 15:41
  • 签到天数: 868 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2015-11-7 22:46:06 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 wambob 于 2015-11-7 22:56 编辑

    收到360度旋转编码器模块 ,模块介绍如下
    https://www.cirmall.com/bbs/thread-44824-1-1.html
    周末开始鼓捣。
    硬件:1.360度旋转编码器模块
               2.FRDM-KL02
    4.JPG 2.JPG 3.JPG
    编码器和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. }
    复制代码
    顺时针.JPG 逆时针.JPG
    两相没标,实验结果为,顺时针 num--,逆时针++,只要把两相换一下,可以换过来。

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-5-27 15:41
  • 签到天数: 868 天

    连续签到: 1 天

    [LV.10]以坛为家III

     楼主| 发表于 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. }
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-3-12 12:23
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2015-11-7 23:42:22 | 显示全部楼层
    可以用状态机的方式 把左右旋转以及按下一起读出来
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-6-14 11:22
  • 签到天数: 44 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2015-11-8 10:58:40 | 显示全部楼层
    回头用FPGA驱动玩玩,哈哈
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-5-27 15:41
  • 签到天数: 868 天

    连续签到: 1 天

    [LV.10]以坛为家III

     楼主| 发表于 2015-11-8 11:10:39 | 显示全部楼层
    鸿鹄部落 发表于 2015-11-8 10:58
    回头用FPGA驱动玩玩,哈哈

    没玩过FPGA            
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-5-27 15:41
  • 签到天数: 868 天

    连续签到: 1 天

    [LV.10]以坛为家III

     楼主| 发表于 2015-11-8 11:18:13 | 显示全部楼层
    ?[Wait...]?& 发表于 2015-11-7 23:42
    可以用状态机的方式 把左右旋转以及按下一起读出来

    这个也可在中断里实现
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-3-12 12:23
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2015-11-8 22:10:15 | 显示全部楼层
    wambob 发表于 2015-11-8 11:18
    这个也可在中断里实现

    恩 是的     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2014-11-28 09:29
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2015-11-9 09:01:49 | 显示全部楼层
    楼主上笔记好快啊,学习
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则



    手机版|小黑屋|与非网

    GMT+8, 2024-4-24 05:05 , Processed in 0.163722 second(s), 30 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.