新手上路
- 积分
- 25
- 金钱
- 25
- 注册时间
- 2017-11-19
- 在线时间
- 3 小时
|

楼主 |
发表于 2017-11-22 19:12:03
|
显示全部楼层
有个程序看不懂,求大神帮助
本帖最后由 旧言 于 2017-11-22 21:28 编辑
又碰到问题了 有个程序看不懂
unsigned long GetLastTick2(void)
{
static unsigned long ulLastTickVal = 0;
unsigned long ulTick = SysTick->VAL;
unsigned long ulTime = ulTickms2;
ulTime = ulTime*1000+((float)ulLastTickVal-(float)ulTick)*1000/(SysTick->LOAD+1);
ulTickms2 = 0;
ulLastTickVal = ulTick;
return ulTime;
}
ulTime = ulTime*1000+((float)ulLastTickVal-(float)ulTick)*1000/(SysTick->LOAD+1);
这条有什么用啊,,但感觉好像是求出两次中断的时间。
下面是应用程序,求大哥给看看,
系统滴答配置:
void SysTick_Init(unsigned char SYSCLK)
{
SysTick->LOAD = (unsigned long)SYSCLK*125-1;
SysTick->VAL = 0;
SysTick->CTRL = 0x03;
}
函数应用:
void EXTI15_10_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line14))
{
EXTI_ClearITPendingBit(EXTI_Line14);
if (ReadDI(ECHO)==1)
{
GetLastTick2();
}
else
{
sLength=(float)GetLastTick2()*0.017;
cTrigState = IDLE; //这个是恢复状态位方便下一次触发测距。(超声波)
}
}
}
谢谢大佬 |
|