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

          新聞中心

          STM8s--定時(shí)器(time4)

          作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
          TIME4:

          ● 8位向上計(jì)數(shù)的自動(dòng)重載計(jì)數(shù)器;
          ● 3位可編程的預(yù)分配器(可在 運(yùn)行中修改),提供1, 2, 4, 8, 16, 32, 64 和128 這8種分頻比例。
          中斷產(chǎn)生
          – 在計(jì)數(shù)器更新時(shí):計(jì)數(shù)器溢出。

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

          幾個(gè)相關(guān)的寄存器;

          控制寄存器1 (TIMx_CR1)

          控制寄存器2 (TIMx_CR2)[注意:TIM4沒有該寄存器]

          事件產(chǎn)生寄存器(TIMx_EGR)

          狀態(tài)寄存器1 (TIMx_SR1)

          中斷使能寄存器(TIMx_IER)

          自動(dòng)重裝載寄存器(TIMx_ARR)

          預(yù)分頻寄存器(TIMx_PSCR)計(jì)數(shù)器時(shí)鐘頻率fCK_CNT=fCK_PSC/ 2(PSC[2:0])

          計(jì)數(shù)器(TIMx_CNTR){TIMx_CNTRL TIMx_CNTRH}

          詳細(xì)內(nèi)容見:STM8S數(shù)據(jù)手冊(cè)

          8位定時(shí)器

          main()

          {

          //首先初始化GPIO

          PD_DDR=0x08;

          PD_CR1=0x08;//將PD3設(shè)置成推挽輸出

          PD_CR2=0x00;

          //然后初始化定時(shí)器4

          TIM4_IER=0x00;//禁止中斷

          TIM4_EGR=0x01;//允許產(chǎn)生更新事件

          TIM4_PSCR=0x07;//計(jì)數(shù)器時(shí)鐘=主時(shí)鐘/128=2MHZ/128

          //相當(dāng)于計(jì)數(shù)器周期為64uS

          TIM4_ARR=255;//設(shè)定重裝載時(shí)的寄存器值,255是最大值

          TIM4_CNTR=255;//設(shè)定計(jì)數(shù)器的初值

          //定時(shí)周期=(ARR+1)*64=16320uS

          TIM4_CR1=0x01;//b0=1,允許計(jì)數(shù)器工作

          //b1=0,允許更新

          //設(shè)置控制器,啟動(dòng)定時(shí)器

          TIM4_IER=0x01;//允許更新中斷

          _asm("rim");//允許CPU全局中斷

          while(1)//進(jìn)入無限循環(huán)

          {

          }

          }

          @far@interruptvoidTIM4_UPD_OVF_IRQHandler(void)

          {

          TIM4_SR1=0x00;//清除更新標(biāo)志

          PD_ODR=PD_ODR^0x08;//LED驅(qū)動(dòng)信號(hào)取反

          //LED閃爍頻率=2MHZ/128/255/2=30.63

          }

          0

          16位定時(shí)器:

          main()

          {

          //首先初始化GPIO

          PD_DDR=0x08;

          PD_CR1=0x08;//將PD3設(shè)置成推挽輸出

          PD_CR2=0x00;

          //然后初始化定時(shí)器4

          TIM2_IER=0x00;//禁止中斷

          TIM2_EGR=0x01;//允許產(chǎn)生更新事件

          TIM2_PSCR=0x01;//計(jì)數(shù)器時(shí)鐘=主時(shí)鐘/128=2MHZ/2

          //相當(dāng)于計(jì)數(shù)器周期為1uS

          //設(shè)定重裝時(shí)的寄存器值

          //注意必須保證先寫入高8位,再寫入低8位

          TIM2_ARRH=0xEA;//設(shè)定重裝載時(shí)的寄存器的高8位

          TIM2_ARRL=0x60;

          TIM2_CNTRH=0xEA;//設(shè)定計(jì)數(shù)器的初值

          TIM2_CNTRL=0x60;

          //定時(shí)周期=1*60000=60000uS=60ms

          TIM2_CR1=0x01;//b0=1,允許計(jì)數(shù)器工作

          //b1=0,允許更新

          //設(shè)置控制器,啟動(dòng)定時(shí)器

          TIM2_IER=0x01;//允許更新中斷

          _asm("rim");//允許CPU全局中斷

          while(1)//進(jìn)入無限循環(huán)

          {

          }

          }

          //函數(shù)功能:定時(shí)器4的更新中斷服務(wù)程序

          //輸入?yún)?shù):無

          //輸出參數(shù):無

          //值:無

          @far@interruptvoidTIM2_UPD_IRQHandler(void)

          {

          TIM2_SR1=0x00;//清除更新標(biāo)志

          PD_ODR=PD_ODR^0x08;//LED驅(qū)動(dòng)信號(hào)取反

          //LED閃爍頻率=2MHZ/2/60000/2=8.3

          }



          關(guān)鍵詞: STM8s定時(shí)器time

          評(píng)論


          技術(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); })();