智能车制作
标题:
拉普兰德LPLD_PulseAcc问题
[打印本页]
作者:
辰戈
时间:
2014-1-16 11:51
标题:
拉普兰德LPLD_PulseAcc问题
/**
* --------------基于"拉普兰德K60底层库V3"的工程(LPLD_PulseAcc)-----------------
* @file LPLD_PulseAcc.c
* @version 0.1
* @date 2013-9-29
* @brief 利用LPTMR模块,实现脉冲累加功能。
*
* 版权所有:北京拉普兰德电子技术有限公司
*
http://www.lpld.cn
* mail:support@lpld.cn
* 硬件平台: LPLD K60 Card / LPLD K60 Nano
*
* 本工程基于"拉普兰德K60底层库V3"开发,
* 所有开源代码均在"lib"文件夹下,用户不必更改该目录下代码,
* 所有用户工程需保存在"project"文件夹下,以工程名定义文件夹名,
* 底层库使用方法见相关文档。
*
*/
#include "common.h"
/********************************************
* 说明:
* 利用K60单片机的FTM模块产生100Khz脉冲波
* 将脉冲波输入到LPTMR 脉冲累加通道
* LPTMR进行脉冲累并通过串口打印输出脉冲累加结果
* 硬件配置说明:
* K60单片机引脚
* FTM -PTC1 -----> PTC5 LPTMR ALT2
* 使用串口调试助手波特率设置为115200
* 使用串口调试助手查看运行结果。
********************************************/
#define PIT_TIMER_PERIOD 10000//10ms
FTM_InitTypeDef ftm_init_param;
PIT_InitTypeDef pit_init_param;
LPTMR_InitTypeDef lptmr_init_param;
uint32_t GetFreq;
uint32_t GetCnt;
void pit_isr0();
/********************************************************************/
void main (void)
{
//注意:采集的频率必须大于100HZ
//初始化FTM
ftm_init_param.FTM_Ftmx = FTM1;
ftm_init_param.FTM_PwmFreq = 100000;//100Khz
ftm_init_param.FTM_Mode = FTM_MODE_PWM;
//初始化PIT
pit_init_param.PIT_Pitx = PIT0;
pit_init_param.PIT_PeriodUs = PIT_TIMER_PERIOD;//10ms 0.1khz
pit_init_param.PIT_Isr = pit_isr0;
//LPTMR_MODE_PLACC脉冲累加模式
//LPTMR_ALT2的输入口为PTC5
//禁用中断
//无中断函数
lptmr_init_param.LPTMR_Mode = LPTMR_MODE_PLACC;
lptmr_init_param.LPTMR_PluseAccInput = LPTMR_ALT2;
lptmr_init_param.LPTMR_Isr = NULL;
//FTM,PIT,LPTMR初始化
LPLD_PIT_Init(pit_init_param);
LPLD_PIT_EnableIrq(pit_init_param); //使能PIT中断
LPLD_FTM_Init(ftm_init_param);
LPLD_LPTMR_Init(lptmr_init_param);
LPLD_FTM_PWM_Enable(FTM1,FTM_Ch0,5000,PTB0,ALIGN_LEFT);
GetFreq=0;
GetCnt=0;
while(1)
{
}
}
void pit_isr0()
{
static uint32_t temp=0;
//GetFreq=0;
//GetCnt=0;
if(GetCnt>99) //进行100次累加,累加次数越高,精度越高,但实时性降低
{
GetFreq=temp/100; //取平均
printf("the PulseAcc:%d hz \r\n",GetFreq*100);
temp=0;
GetCnt=0;
}
else
{
temp+=LPLD_LPTMR_GetPulseAcc();
//printf("the PulseAcc:%d hz \r\n",temp);
//temp+=LPTMR0_CNR;
GetCnt++;
}
LPLD_LPTMR_ResetCounter(); //复位LPTMR0 counter
LPLD_LPTMR_Init(lptmr_init_param);
}
为什么得不到计数值啊?[attach]54967[/attach]
作者:
qq群
时间:
2014-1-16 20:19
MK60DZ10与MK60N512MD100的区别,两款芯片的程序可以一样么?我是用MK60N512MD100的芯片,苦于DMA摄像头程序没底层,想把之前在芯片MK60N512MD100写的底层移植到 用芯片MK60DZ10写的底层去,但搞了2天。总是很多错误。望各路大神们,可以给小弟一点意见,万分感激
作者:
l__q__f
时间:
2014-3-22 10:49
同求?原先使用的是野火的库现在想用拉普兰德的,现在只在板子上运行成功hello world的历程,其他的变异不会出错,但是下进板子里就是不会看到运行效果 ,不知道应该改哪些地方!
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2