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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Cortex M3S811學(xué)習(xí)筆記-TIMER32

          Cortex M3S811學(xué)習(xí)筆記-TIMER32

          作者: 時間:2012-09-14 來源:網(wǎng)絡(luò) 收藏
          今天把32位下的定時功能搞清楚了,首先32位下只有三個功能,32位單周期定時,32位多周期定時,和一個要外接時鐘的RTC。RTC 我們暫時用不上,先不管。

          把握大局,就是用來得到精確時間的一個定時器,單周期只跑一次,即使是你用TimerLoadSet(TIMERn_BASE,TIMER_A,要賦的值);他也不會跑了,是沒有用的。說跑一次就是一次; 跑一次還是N次是由定時器模式設(shè)置達(dá)到的:TIMERMODULE(TIMER2_BASE,TIMERS320);


          來說下具體如何操作

          1:使能定時器模塊,DEVICEEN(SYSCTL_PERIPH_TIMER2);

          2:設(shè)置模式 TIMERMODULE(TIMER2_BASE,TIMERS32);

          3: 裝值 TimerLoadSet(TIMER2_BASE,TIMER_A,要裝的值);

          4: 啟動定時器 TimerEnable(TIMER2_BASE,TIMER_A);


          以上就是完整過程,TIEMR2到0后自己動變?yōu)檠b載值。

          可以用查詢的方法,確定具體時間干什么事;

          if(TimerValueGet(TIEMR1_BASE,TIMERA)>多少){你要干什么事情};


          下面是用中斷的方法進(jìn)入中斷,然后處理中斷程序,有中斷,就要寫中斷程序,麻煩;

          以下是具體步驟:

          1:同上,使能定時器模塊,DEVICEEN(SYSCTL_PERIPH_TIMER1)

          2; 同上,設(shè)置定時器模式,TIMERMODULE(TIMER1_BASE,TIMERS32);

          3:注意,這里就不同了,開定時器溢出中斷;與GPIOINTENABLE對比,

          TimerIntEnable(TIMER_BASE,TIMERAOUT);

          (TIMERAOUT名為溢出中斷,就是減到了0不能減了,就溢出了,需從頭開始)

          4:開總的TIMER中斷, IntEnable(INT_TIMER1A);

          5:開CPU的中斷, IntMasterEnable();


          6:同上裝初值 TimerLoadSet(TIMER1_BASE,TIMER_A,要裝的值)

          7:啟動定時器,開始計(jì)數(shù) TimerEnable(TIMER1_BASE,TIMER_A);

          最后一步:時間到了進(jìn)中斷,你需要進(jìn)處理中斷,也就是你要寫的中斷程序(切記,一定要修改中斷向量表中的名字和申明,在startup.s里面)



          關(guān)鍵詞: Cortex M3S811 TIMER32

          評論


          相關(guān)推薦

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