FSL_TICS_Robin 发表于 2014-6-9 10:45 
楼主你好
请问你是想把LPTMR用作计数or定时呢?
另外你是想在一定时间内测脉冲个数推算频率or测脉冲间隔时 ...
我把LPTMR用作计数了,我想在60s内计算脉冲个数,从而获取一分钟内的脉冲频率。对于0.9-3.3HZ的频率计数波动很大,不稳定,我现在上传一份代码请看一下
#define PIT_TIMER_PERIOD 60000000 //60s
void main (void)
{
LPLD_PIT_Init(PIT0, PIT_TIMER_PERIOD, pit_isr0);//初始化,PIT0定时PIT_TIMER_PERIOD的us之后,响应pit_isr0中断
LPLD_LPTMR_Init(MODE_PLACC, 0, LPTMR_ALT2, IRQ_DISABLE, NULL);//MODE_PLACC脉冲累加模式
//LPTMR_ALT2的输入口为PTC5
//禁用中断
//无中断函数
GetFreq=0;
GetCnt=0;
EnableInterrupts;
while(1)
{
}
}
void pit_isr0()
{
static uint32_t temp=0;
if(GetCnt>0)
{
GetFreq=temp/1;
printf("GetFreq:%d\n",GetFreq);
temp=0;
GetCnt=0;
}
else
{
temp+=LPLD_LPTMR_GetPulseAcc();
GetCnt++;
}
// printf("GetFreq:%d\n",GetFreq);
LPLD_LPTMR_Reset(); //Reset LPTMR0
LPLD_LPTMR_Init(MODE_PLACC, 0, LPTMR_ALT2, IRQ_DISABLE, NULL);
}
信号发生器输入:3HZ方波,
输出如下:
Core Clock:96MHz!
Bus Clock:48000kHz!
Software Reset
K60-144pin
This version of software doesn't recognize the revision code.Flash parameter version 0.0.8.0
Flash version ID 3.4.0.0
512 kBytes of P-flash
|