zoukankan      html  css  js  c++  java
  • sysTick定时器

    SysTick定时器也叫SysTick滴答定时器,它是Cortex-M3内核的一个 外设,被嵌入在 NVIC 中。它是一个24 位向下递减的定时器,每计数一次所需时间为1/SYSTICK,SYSTICK是系统定时器时钟,它可以直接取自 系统时钟(72M),还可以通过系统时钟8分频后获取(9M)。当定时器计数到0时,将从LOAD 寄存器中自动重装定时器初值,重新向下递减计数,如此循环往 复。如果开启SysTick中断的话,当定时器计数到0,将产生一个中断信 号。因此只要知道计数的次数就可以准确得到它的延时时间。

    微妙      1/9*次数

     

    delay_ms()函数:
    void delay_ms(u16 nms)
    {          
      u32 temp;    
      SysTick->LOAD=(u32)nms*fac_ms;  //时间加载(SysTick->LOAD为24bit)
      SysTick->VAL =0x00;  //清空计数器
      SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;  //开始倒数 
      do
      {
      temp=SysTick->CTRL;
      }while((temp&0x01)&&!(temp&(1<<16)));  //等待时间到达  
      SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;  //关闭计数器
      SysTick->VAL =0X00;         //清空计数器          
    }

     

    !是非

    不断地递减,为0时跳出while循环

    不能大于1864ms=1.864s

     LOAD是24位寄存器  FFFFFF十进制16777215>=(u32)nms*fac_ms,超过会溢出  fac_ms是9000       16777215/9000=1864




  • 相关阅读:
    2.3、css颜色表示法
    2.2、css文本设置
    2.1、css基本语法及页面引用
    1.10、html内嵌框架
    1.9、html表单
    1.8、html表格
    1.7、html列表
    1.6、html链接
    1.5、html图像、绝对路径和相对路径
    1.4、html块、含样式的标签
  • 原文地址:https://www.cnblogs.com/296389183yy/p/9304978.html
Copyright © 2011-2022 走看看