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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 瑞薩單片機(jī)學(xué)習(xí)筆記(2)中斷的使用

          瑞薩單片機(jī)學(xué)習(xí)筆記(2)中斷的使用

          作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏
            前面章節(jié)有提到通過(guò)設(shè)置option_byte來(lái)配置看門(mén)狗,我手上拿到的項(xiàng)目工程是沒(méi)有配置option_byte的,但是發(fā)現(xiàn)coder是在程序中見(jiàn)縫插針般插入以下代碼:

            WDTE = 0xac;

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

            這個(gè)賦值操作就是喂狗,至今我也不知道option_byte的復(fù)位值是多少,從官網(wǎng)下載的數(shù)據(jù)手冊(cè)也沒(méi)有說(shuō)明。其實(shí)可以通過(guò)一些方法來(lái)驗(yàn)證,即不設(shè)置option_byte,不喂狗,看程序是否會(huì)不停復(fù)位。廢話(huà)說(shuō)完,言歸正傳,我們用定時(shí)器來(lái)實(shí)現(xiàn)定時(shí)喂狗。

            這里用到的是78K0/FY-2系列單片機(jī),使用TM51作為定時(shí)器,需要配置的寄存器有:

            TCL51——選擇定時(shí)器時(shí)鐘頻率,是在外部硬件時(shí)鐘頻率的基礎(chǔ)上進(jìn)行分頻。

            TMC51——此寄存只有最高位TCEN51,開(kāi)啟/關(guān)閉定時(shí)器。

            CR51——計(jì)數(shù)比較寄存器,當(dāng)計(jì)數(shù)寄存器TM51的值等于CR51時(shí),會(huì)置位對(duì)應(yīng)中斷標(biāo)識(shí)位。此處的值不同于STC定時(shí)器的裝置值。

            TMMK51——TM51中斷屏蔽寄存器位

            TMPR51——TM51中斷優(yōu)先級(jí)寄存器位

            本人喜歡將某個(gè)部件的初始化代碼編寫(xiě)為一個(gè)函數(shù)

            void init_TM51(void)

          {

            TCL51 = 0x05;   //基于20MHz分頻為312.5KHz ,定時(shí)間隔為3.2us

            TMC51 = 0x80;  //打開(kāi)定時(shí)器

            CR51 = 0xfa;  //0.8ms會(huì)產(chǎn)生中斷

            TMMK51 = 0;  //使能中斷

            TMPR51 =0;  //設(shè)置為高優(yōu)先級(jí)中斷

            EI();  //還記得前面添加的#pragma EI 嗎?總中斷使能,剛開(kāi)始摸索的時(shí)候就是忘記添加此行代碼

          }

          中斷函數(shù):

          #pragma interrupt INTTM51 inter_TM51 rb1

          __interrupt void inter_TM51(void)

          {

            //添加自己的代碼

          }



          評(píng)論


          技術(shù)專(zhuān)區(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); })();