wambob 发表于 2015-11-7 22:46:06

360度***编码器模块 学习笔记

本帖最后由 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#include <stdio.h>
#include <string.h>
#include "gpio.h"
#include "common.h"
#include "uart.h"
#define KEY3_PORT   HW_GPIOA
#define KEY3_PIN    12#define KEY1_PORT   HW_GPIOB          #define KEY1_PIN    5void PORTA_IRQHandler(void)
{
   
       if(PORTA_ISFR == (1<<12)) //KEY4 PTA12 上升下降沿中断
       {
      PORTA_PCR12 |= PORT_PCR_ISF_MASK;
       if( GPIO_ReadBit(HW_GPIOA, 12)==0)
       {if( GPIO_ReadBit(HW_GPIOB, 5)==0)
         num++;
       }
         else
         {
if( GPIO_ReadBit(HW_GPIOB, 5)==0)
            num--;
          }

       }

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

liujincai 发表于 2015-11-9 09:01:49

楼主上笔记好快啊,学习

?[Wait...]?& 发表于 2015-11-8 22:10:15

wambob 发表于 2015-11-8 11:18 static/image/common/back.gif
这个也可在中断里实现

恩 是的:)   

wambob 发表于 2015-11-8 11:18:13

??& 发表于 2015-11-7 23:42 static/image/common/back.gif
可以用状态机的方式 把左右***以及按下一起读出来

这个也可在中断里实现

wambob 发表于 2015-11-8 11:10:39

鸿鹄部落 发表于 2015-11-8 10:58 static/image/common/back.gif
回头用FPGA驱动玩玩,哈哈

没玩过FPGA            

鸿鹄部落 发表于 2015-11-8 10:58:40

回头用FPGA驱动玩玩,哈哈

?[Wait...]?& 发表于 2015-11-7 23:42:22

可以用状态机的方式 把左右***以及按下一起读出来:)

wambob 发表于 2015-11-7 23:26:45

丢失的部分代码extern long int num;
int main(void)
{
DelayInit();
GPIO_QuickInit(KEY1_PORT, KEY1_PIN, kGPIO_Mode_IPU);
GPIO_QuickInit(KEY3_PORT, KEY3_PIN, kGPIO_Mode_IPU);
UART_QuickInit(UART0_RX_B2_TX_B1, 9600);
printf("360***编码器 demo!\r\n");
GPIO_ITDMAConfig(KEY3_PORT, 12, kGPIO_IT_RisingFallingEdge, true);
while(1)
{
printf("%ld \r\n",num);
}
页: [1]
查看完整版本: 360度***编码器模块 学习笔记

Baidu
map