打印
[STM32F1]

stm32f103滴答定时器问题

[复制链接]
2189|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
用滴答定时器来计时,为什么总会有10000的跳变呢?void TimeCount_Init(void)
{
    //SystemCoreClock / 1000       1ms中断一次
    //SystemCoreClock / 100000     10us中断一次
    //SystemCoreClock / 1000000    1us中断一次

    if(SysTick_Config(SystemCoreClock / 1000))
    {
        while(1);
    }
    SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;
}
void SysTick_Handler(void)
{                                                            
    MilliS++;
    if(MilliS>=10000) MilliS=0;   //此处10000ms 主要方便延时函数使用
    if(MilliS%1000==0) {Second++;}
    if(Second>=60) {Second=0;Min++;}
}

程序是每10ms取一次MilliS的数值。最大60000
      Millis_TEMP=MilliS/10;
      Second_TEMP=Second;
      if(Millis_TEMP<Millis_TEMP_1)
      {
        TX_flag=0;
        Millis_TEMP=Millis_TEMP_1;
      }

      else if (Millis_TEMP==Millis_TEMP_1)
      {
        Millis_TEMP+=1;

        if((Millis_TEMP%100)==0)
          Second_TEMP++;
        if(Millis_TEMP==1000)
          Millis_TEMP=0;
      }

Dataframe[TIME_H] = (((Millis_TEMP*10)%1000 + Second_TEMP*1000)&0xFF00)>>8;//time high
Dataframe[TIME_L] = ((Millis_TEMP*10)%1000 + Second_TEMP*1000)&0x00FF;//time low

QQ图片20150909124303.png (12.55 KB )

MATLAB画的相邻数据的time差

MATLAB画的相邻数据的time差
沙发
mmuuss586| | 2015-9-9 20:36 | 只看该作者
10000的跳变啥意思?

使用特权

评论回复
板凳
gejigeji521| | 2015-9-9 20:59 | 只看该作者
没看明白想表达什么意思

使用特权

评论回复
地板
gejigeji521| | 2015-9-9 21:21 | 只看该作者
跳变的时刻是中断发生时刻吗?是不是触发

使用特权

评论回复
5
amanda_s| | 2015-9-11 10:34 | 只看该作者
楼主的意思是计时的时候,秒或者是分钟的值发生了跳变?
从多少跳到多少?
建议跟踪下看看。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

74

帖子

0

粉丝