<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ī)寄存器配置問(wèn)題

          單片機(jī)寄存器配置問(wèn)題

          作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò) 收藏
          在寫(xiě)單片機(jī)是對(duì)寄存器的設(shè)置要注意,有很多外設(shè)可能用這一個(gè)寄存器,在外設(shè)初始化的時(shí)候或?qū)拇嫫餍薷氖强赡軙?huì)影響到其他外設(shè)的正常工作,今天就遇到這樣一個(gè)蛋疼的問(wèn)題,
          這是我初始化程序中的一段代碼節(jié)選:
          void init_timer0(void)
          {
          ...
          TIMSK=0X01;//使能溢出中斷,大概16ms一次
          }
          void init_timer2(void)
          {
          ...
          TIMSK=0x40;//關(guān)閉比較中斷打開(kāi)溢出中斷
          }
          void adc_init(void)
          {
          ...
          }
          注意到定時(shí)機(jī)器0和1的中斷設(shè)置位在同一個(gè)寄存器TIMSK中的不同位中,上面的代碼如果在初始化完定時(shí)器0后在器初始化點(diǎn)時(shí)期1時(shí)則定時(shí)器0的中斷服務(wù)函數(shù)無(wú)法執(zhí)行,十一代碼修改如下:
          void init_timer0(void)
          {
          ...
          TIMSK |= 0X01;//使能溢出中斷,大概16ms一次
          }
          void init_timer2(void)
          {
          ...
          TIMSK |= 0x40;//關(guān)閉比較中斷打開(kāi)溢出中斷
          }
          void adc_init(void)
          {
          ...
          }
          程序正常運(yùn)行
          總結(jié):以后在寄存器(還樣還要注意寄存器在復(fù)位的初始值)的設(shè)置上找采用 “|” 和 “&” 來(lái)置位和清零寄存器的某一位,這樣就不會(huì)在不注意的情況下影響到其他外設(shè)的正常工作了


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