<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32中的tic與toc,用SysTick統(tǒng)計代碼段執(zhí)行時間

          STM32中的tic與toc,用SysTick統(tǒng)計代碼段執(zhí)行時間

          作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏



          SysTick_CALRB校準(zhǔn)值寄存器:


          這個寄存器好像目前的水平我還用不到,大體意思明白點(diǎn),把英文說明放這吧:
          位31NOREF:1=沒有外部參考時鐘(STCLK不可用)0=外部參考時鐘可用
          位30SKEW:1=校準(zhǔn)值不是準(zhǔn)確的1ms0=校準(zhǔn)值是準(zhǔn)確的1ms
          位[23:0]:Calibrationvalue
          IndicatesthecalibrationvaluewhentheSysTickcounterrunsonHCLKmax/8asexternalclock.Thevalueisproductdependent,pleaserefertotheProductReferenceManual,SysTickCalibrationValuesection.WhenHCLKisprogrammedatthemaximumfrequency,theSysTickperiodis1ms.Ifcalibrationinformationisnotknown,calculatethecalibrationvaluerequiredfromthefrequencyoftheprocessorclockorexternalclock.

          本文引用地址:http://www.ex-cimer.com/article/201612/324399.htm

          類似matlab里的tic與toc函數(shù),用來統(tǒng)計程序代碼執(zhí)行需要的時間:
          uint16_t OverFlowTimes=0;

          void tic(void) //程序開始計時
          {
          SysTick->CTRL |= (1<<2); //時鐘選擇,HCLK
          SysTick->CTRL |= (1<<1); //中斷使能
          SysTick->VAL=0X00;//當(dāng)前數(shù)值寄存器清零,并清除溢出標(biāo)志位
          SysTick->LOAD=0XFFFFFF; //計數(shù)器賦初值
          SysTick->CTRL |= (1<<0); //開啟計數(shù)器
          }
          void toc(void) //結(jié)束計時
          {
          float ElaspTime;
          uint32_t ClkNum;
          SysTick->CTRL &= ~(1<<0); //關(guān)閉計數(shù)器
          ClkNum=SysTick->VAL; //讀取計數(shù)器的值
          ElaspTime=(OverFlowTimes*((float)0xffffff/SystemCoreClock)+(float)(0xffffff-ClkNum)/SystemCoreClock); //計算時間
          OverFlowTimes=0;
          printf("Escaple time is %f",ElaspTime);
          }
          /*溢出的次數(shù)*/
          void SysTick_Handler(void)
          {
          OverFlowTimes++;
          }

          上一頁 1 2 下一頁

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();