欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

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

作者:liudde58   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2010年08月31日   【字體:

   今天把32位下的定時功能搞清楚了,首先32位下只有三個功能,32位單周期定時,32位多周期定時,和一個要外接時鐘的RTC。RTC 我們暫時用不上,先不管。

把握大局,就是用來得到精確時間的一個定時器,單周期只跑一次,即使是你用TimerLoadSet(TIMERn_BASE,TIMER_A,要賦的值);他也不會跑了,是沒有用的。說跑一次就是一次; 跑一次還是N次是由定時器模式設(shè)置達到的: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)>多少){你要干什么事情};

 

 


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

以下是具體步驟:

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:啟動定時器,開始計數(shù) TimerEnable(TIMER1_BASE,TIMER_A);

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

//=======================================================未完待續(xù)。。。。。。。。。。。。。。。。。。。
 

關(guān)閉窗口

相關(guān)文章