⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lpld_lptmr_pulseacc.c

📁 Kinetis_K60开源底层驱动开发包(20120328)
💻 C
字号:
/*
 * 测试硬件平台:  LPLD_K60 Card
 * 版权所有:      北京拉普兰德电子技术有限公司
 * 网络销售:      http://laplenden.taobao.com
 * 公司门户:      http://www.lpld.cn
 *
 * 说明:    本工程基于Kintis K60开源底层开发包开发,
 *          所有开源驱动代码均在"LPLD"文件夹下,调用说明见文档[#LPLD-003-N]
 *
 * 文件名:		LPLD_LPTMR_PulseAcc.c
 * 用途:		LPTMR低功耗定时中断模块例程 脉冲累加功能
 *
 * LPLD_K60 Card 硬件配置说明:
 *                      PTC1输出PWM接入到PTC5的脉冲累加输入口,变量GetFreq存放频率值
 *
 *
 */


#include "common.h"
#include "HAL_PIT.h"
#include "HAL_FTM.h"
#include "HAL_LPTMR.h"

#define PIT_TIMER_PERIOD 1000 //1ms
                               

uint16_t GetFreq;
uint16_t GetCnt;

void pit_isr0();
/********************************************************************/

void main (void)
{
  //注意:采集的频率必须大于100HZ
  LPLD_FTM0_PWM_Init(100000);   //100Khz   
  LPLD_FTM0_PWM_Open(0,5000);
  
  LPLD_PIT_Init(0, PIT_TIMER_PERIOD, pit_isr0);
  LPLD_LPTMR_Init(1,0,2,0,NULL);
  
  GetFreq=0;
  GetCnt=0;
  EnableInterrupts;
  while(1)
  {   
  }
}


void pit_isr0()
{
    static uint32_t temp=0;
    
    if(GetCnt>2)
    {
       GetFreq=temp/3; 
       temp=0;
       GetCnt=0;
    }
    else
    {
       temp+=LPLD_LPTMR_GetPulseAcc();
       GetCnt++;
    }
    
    LPLD_LPTMR_Reset();       //Reset LPTMR0  
    LPLD_LPTMR_Init(1,0,2,0,NULL);
}





/********************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -