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

          新聞中心

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

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

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

            WDTE = 0xac;

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

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

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

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

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

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

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

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

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

            void init_TM51(void)

          {

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

            TMC51 = 0x80;  //打開定時器

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

            TMMK51 = 0;  //使能中斷

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

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

          }

          中斷函數(shù):

          #pragma interrupt INTTM51 inter_TM51 rb1

          __interrupt void inter_TM51(void)

          {

            //添加自己的代碼

          }



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