canfestival移植stm32f4 问题倒不大,但是这个心跳一旦bootup后就开始乱跳了,关于stm32_canfestival.c的时钟函数配置大致如下,
头文件timescfg.h 也已经改成1:1,因为定时器就是1ms中断。设置心跳时间为1s,bootup前是预定义状态,心跳正常1s。收发PDO后就开始乱了,1s里有2个心跳,大概率互补叠加为1s左右。
参考前人的移植历程好像移植没注意这个问题?找不到问题原因阿
#define MS_TO_TIMEVAL(ms) ((ms * 1))
#define US_TO_TIMEVAL(us) ((us))
void setTimer(TIMEVAL value)
{
u16 capture;
nexttime = value;
NextTime=(TimeCNT+value)%TIMEVAL_MAX;
}
// Get the elapsed time since the last occured alarm //
TIMEVAL getElapsedTime(void)
{
int ret=0;
ret = (TimeCNT >= last_time_set) ? (TimeCNT - last_time_set) : (TimeCNT + TIMEVAL_MAX - last_time_set);
last_time_set = TimeCNT;
elapsetime = ret;
return ret;
}
void timerForCan(void)
{
TimeCNT++;
if (TimeCNT>=TIMEVAL_MAX)
{
TimeCNT=0;
}
if (TimeCNT==NextTime)
{
TimeDispatch();
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>