查看: 3506|回复: 2

[求助] Kinetis K60系列之FTM输入捕捉中断

[复制链接]

该用户从未签到

16

主题

78

帖子

0

注册会员

Rank: 2

积分
178
最后登录
2018-6-1
发表于 2016-9-21 09:05:47 | 显示全部楼层 |阅读模式
128分频 FTM2_MOD=624 50000000次 PIT计数定时 算出采集的数为625,0x0271。
main.c
  1. #include "project.h"


  2. void delay(U32);
  3. void FTM_PWM_Init(void);
  4. void FTM_INPUT_INIT(void);
  5. void PIT0_Init(void);

  6. volatile U16 count;

  7. void main(void)
  8. {

  9.     DisableInterrupts;

  10.     UART4_Init(115200);
  11.     FTM_PWM_Init();
  12.     FTM_INPUT_INIT();
  13.     PIT0_Init();
  14.    
  15.     EnableInterrupts;

  16.     while(1);
  17. }

  18. void delay(U32 count)
  19. {
  20.     while(count--);
  21. }

  22. void FTM_PWM_Init(void)
  23. {

  24.     PORTA_PCR10 = PORT_PCR_MUX(0x03) | PORT_PCR_DSE_MASK;
  25.    
  26.     SIM_SCGC3 |= SIM_SCGC3_FTM2_MASK;

  27.     FTM2_SC |= (FTM_SC_CLKS(1)           // 系统时钟
  28.                |FTM_SC_PS(7));           // 128 分频
  29.    
  30.     FTM2_C0SC |= (FTM_CnSC_MSB_MASK      // MSB 1
  31.                  |FTM_CnSC_ELSA_MASK);   // ELSA 1

  32.    
  33.     FTM2_OUTMASK = 0XFE;                 // 屏蔽CH2~CH7通道 打开CH0 CH1
  34.     FTM2_CNTIN = 0;                      //FTM 计数初始值
  35.     FTM2_MOD   = 624;                    // 计数的值 频率=分频/(MOD - CNTIN + 1)
  36.       
  37.     FTM2_C0V   = 300;                      // 占空比
  38. }

  39. void FTM_INPUT_INIT(void)
  40. {

  41.     SIM_SCGC6 |= SIM_SCGC6_FTM0_MASK;                        
  42.     SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;
  43.    
  44.     PORTA_PCR7 = PORT_PCR_MUX(3) | PORT_PCR_DSE_MASK;

  45.     FTM0_C4SC |=  ( FTM_CnSC_ELSA_MASK  | FTM_CnSC_CHIE_MASK );        //上升沿触发            
  46.     FTM0_C4SC &= ~( FTM_CnSC_ELSB_MASK  | FTM_CnSC_MSB_MASK | FTM_CnSC_MSA_MASK);

  47.     FTM0_SC = FTM_SC_CLKS(1);

  48.     FTM0_MODE |= FTM_MODE_WPDIS_MASK;
  49.     FTM0_COMBINE = 0;
  50.     FTM0_MODE &= ~FTM_MODE_FTMEN_MASK;
  51.     FTM0_CNTIN = 0;

  52.     FTM0_STATUS = 0x00;               //清中断标志位

  53.     enable_irq(62);
  54. }

  55. void PIT0_Init(void)
  56. {

  57.     SIM_SCGC6 |= (1<<23);
  58.    
  59.     PIT_MCR = 0;
  60.    
  61.     PIT_LDVAL0 =  50000000;
  62.    
  63.     PIT_TCTRL0 |= (3);
  64.    
  65.     enable_irq(68);
  66.    
  67. }
复制代码
isr.h
中断服务函数头文件
  1. #include "project.h"

  2. #undef  VECTOR_084
  3. #define VECTOR_084    PIT0_IRQHandler     //重新定义84号中断为PIT0_IRQHandler中断

  4. #undef  VECTOR_078
  5. #define VECTOR_078    FTM0_IRQHandler  



  6. extern void PIT0_IRQHandler(void);            //PIT0 定时中断服务函数
  7. extern void FTM0_IRQHandler(void);            //FTM0输入捕捉中断
复制代码
isr.c
中断服务函数
  1. #include "isr.h"

  2. extern volatile U16 count;
  3. U8 count1,count2;

  4. void PIT0_IRQHandler(void)
  5. {

  6.     count1=count;
  7.     count2=count>>8;
  8.     Uart4_SendByte(count2);
  9.     Uart4_SendByte(count1);
  10.     count=0;

  11.     PIT_TFLG0 |= PIT_TFLG_TIF_MASK;   //清中断标志
  12.     PIT_MCR = 0;   
  13. }

  14. void FTM0_IRQHandler(void)
  15. {
  16.     U8 Status = FTM0_STATUS;           
  17.     FTM0_STATUS = 0x00;             //清中断标志位

  18.     if(Status & (1<<4))
  19.         count++;

  20. }
复制代码

短接PTA10(FTM2 CH0)和PTA7(FTM0 CH4) 采集到数据应为625(0x0271)
07164003-2263e8598ce4495a84bff485361a2da4.x-png.png




我知道答案 目前已有2人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16857
    最后登录
    1970-1-1
    发表于 2016-9-21 09:17:37 | 显示全部楼层
    多谢分享
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-10 15:47
  • 签到天数: 1251 天

    连续签到: 1 天

    [LV.10]以坛为家III

    6

    主题

    2396

    帖子

    3

    金牌会员

    Rank: 6Rank: 6

    积分
    7534
    最后登录
    2025-5-23
    发表于 2016-9-21 11:27:25 | 显示全部楼层
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-3 04:27 , Processed in 0.094030 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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