找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2515|回复: 0
打印 上一主题 下一主题
收起左侧

LQ_K60正交解码-MINI编码器测试程序

[复制链接]
跳转到指定楼层
楼主
ID:402241 发表于 2018-9-25 16:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机源程序如下:
  1. /********************************************************   
  2. 【平    台】龙丘K60DN多功能开发板
  3. 【编    写】龙丘
  4. 【Designed】by Chiu Sir
  5. 【E-mail  】chiusir@aliyun.com
  6. 【软件版本】V1.0
  7. ------------------------------------------------
  8. 【dev.env.】IAR6.60
  9. 【Target  】K60FX/DN
  10. 【Crystal 】50.000Mhz
  11. 【busclock】100.000MHz
  12. 【pllclock】200.000MHz  
  13. ------------------------------------
  14. 下载器设置方式:
  15. 菜单project-->options-->debuger-->setup-->driver:
  16. 1.PE Micro:LQ_ARMJTAG/OSJTAG
  17. 2.Jlink/Trace:LQ_JLINKV8

  18. ********************************************************
  19. 实验说明:LPTMR脉冲计数器实验
  20. 实验操作:连接PTC1和PTC5,连接串口至电脑,即可在串口助手上看到脉冲的技术
  21.      

  22. *********************************************************/
  23. #include "common.h"
  24. #include "include.h"



  25. /*************************************************************************
  26. *  函数名称:void main(void)
  27. *  功能说明:工程的主函数
  28. *  参数说明:无
  29. *  函数返回:无
  30. *  修改时间:2014-1-4
  31. *  备    注:官方例程
  32. *************************************************************************/
  33. void main(void)
  34. {      
  35.        LED_INIT();                            //初始化LED
  36.        uart_init (UART4,9600);                //初始化串口模块4,设置波特率9600
  37.        pulse_init();  
  38.        pit_init_ms(PIT0,1);
  39.        EnableInterrupts;                                //开总中断
  40.        while(1)
  41.        {   
  42.       
  43.        }
  44. }
复制代码
  1. /********************************************************   
  2. 【平    台】龙丘K60DN多功能开发板
  3. 【编    写】龙丘
  4. 【Designed】by Chiu Sir
  5. 【E-mail  】chiusir@aliyun.com
  6. ------------------------------------------------
  7. 【dev.env.】IAR6.30
  8. 【Target  】K60FX/DN
  9. 【Crystal 】50.000Mhz
  10. 【busclock】100.000MHz(默认)
  11. 【pllclock】200.000MHz  
  12. ------------------------------------
  13. 下载器设置方式:
  14. 菜单project-->options-->debuger-->setup-->driver:
  15. 1.PE Micro:LQ_ARMJTAG/OSJTAG
  16. 2.Jlink/Trace:LQ_JLINKV8
  17. *********************************************************/
  18. #include "common.h"
  19. #include "include.h"

  20. void speed_read(void);
  21. int A_leftMotor,B_rightMotor ;
  22. /*************************************************************************
  23. *  函数名称:UART4_IRQHandle()
  24. *  功能说明:串口4中断函数
  25. *  参数说明:无
  26. *  函数返回:无
  27. *  修改时间:2014-1-4
  28. *  备    注:官方例程
  29. *************************************************************************/
  30. void UART4_IRQHandle()
  31. {  
  32.       char Rec[20];
  33.       if(uart_pendstr(UART4, Rec))
  34.       {
  35.       printf("你发送的数据是:%s\r\n", Rec);   
  36.      
  37.       }

  38. }



  39. /*************************************************************************
  40. *  函数名称:PORTA_IRQHandle()
  41. *  功能说明:PTA口中断函数
  42. *  参数说明:无
  43. *  函数返回:无
  44. *  修改时间:2014-1-4
  45. *  备    注:官方例程
  46. *************************************************************************/
  47. void PORTA_IRQHandle()
  48. {  
  49.   if(PORTA_ISFR & (1<<19))
  50.    {
  51.    PORTA_ISFR |= (1<<19);
  52.    LED1_TURN();
  53.    LED2_TURN();
  54.    delayms(100);
  55.    }   

  56. }


  57. /*************************************************************************
  58. *  函数名称:PORTB_IRQHandle()
  59. *  功能说明:PTB口中断函数
  60. *  参数说明:无
  61. *  函数返回:无
  62. *  修改时间:2014-1-4
  63. *  备    注:官方例程
  64. *************************************************************************/
  65. void PORTB_IRQHandle()
  66. {  
  67.       
  68. if(PORTB_ISFR & (1<<10))
  69.   {
  70.   PORTB_ISFR |= (1<<10);
  71.   LED3_TURN();
  72.   LED4_TURN();
  73.   delayms(100);
  74.    }
  75. }

  76. /*************************************************************************
  77. *  函数名称:FTM0_IRQHandle
  78. *  功能说明:FTMO中断函数
  79. *  参数说明:无
  80. *  函数返回:无
  81. *  修改时间:2014-1-4
  82. *  备    注:官方例程
  83. *************************************************************************/
  84. void FTM0_IRQHandle()
  85. {

  86.                
  87. if( FTM0_STATUS & (1 << CH0) )
  88.     {
  89.         FTM_IRQ_DIS(FTM0, CH0);    //关闭中断
  90.         LED();                   //翻转LED
  91.         FTM_IRQ_EN(FTM0, CH0);  //使能FTM中断
  92.         FTM0_STATUS = 0x00;    //清除中断标志位
  93.      }


  94. }

  95. /*************************************************************************
  96. *  函数名称:PIT0_IRQHandle()
  97. *  功能说明:定时器1中断函数
  98. *  参数说明:无
  99. *  函数返回:无
  100. *  修改时间:2014-1-4
  101. *  备    注:官方例程
  102. *************************************************************************/
  103. void PIT0_IRQHandle()
  104. {
  105.   
  106.   speed_read();
  107.   PIT_Flag_Clear(PIT0);
  108.   
  109. }


  110. /*************************************************************************
  111. *  函数名称:PIT0_IRQHandle()
  112. *  功能说明:定时器1中断函数
  113. *  参数说明:无
  114. *  函数返回:无
  115. *  修改时间:2014-1-4
  116. *  备    注:官方例程
  117. *************************************************************************/
  118. void speed_read(void)

  119. {
  120.    
  121.    
  122.    A_leftMotor = FTM2_CNT;
  123.    FTM2_CNT = 0;
  124.    B_rightMotor = FTM1_CNT;
  125.    FTM1_CNT = 0;
  126.    printf("编码器1转速为: %d\r\n", A_leftMotor);
  127.    printf("编码器2转速为: %d\r\n", B_rightMotor);
  128.    LED1_TURN();
  129.    LED2_TURN();
  130.    LED3_TURN();
  131.    LED4_TURN();
  132. }
复制代码


所有资料51hei提供下载:
http://www.51hei.com/bbs/dpj-135837-1.html



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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