色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 凌陽(yáng)16位單片機(jī)之定時(shí)器中斷

          凌陽(yáng)16位單片機(jī)之定時(shí)器中斷

          作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏
          首先先計(jì)算好想要的時(shí)間,基本上就是 *P_TIMEA_Data = 0xffff-你想要的時(shí)間頻率。然后*P_INT_Ctrl = 允許相應(yīng)的中斷允許接受中斷,然后__asm();

          然后等到溢出的時(shí)候進(jìn)入相應(yīng)的中斷,

          本文引用地址:http://cafeforensic.com/article/201611/318710.htm

          說(shuō)一下*P_INT_Ctrl的意義,他有兩個(gè)操作,一個(gè)是讀操作一個(gè)寫(xiě)操作,剛開(kāi)始可能只是看書(shū)理解有點(diǎn)難,其實(shí)讀操作和寫(xiě)操作就是兩碼事,就像你命令一個(gè)人拿東西一樣,第一次規(guī)定了怎么拿但是下一次拿的時(shí)候就不用再告訴怎么拿了,之所以叫做讀操作是因?yàn)椴挥脤?xiě)(/這句話看似是廢話但是想想還是可以的)即每次清除的不是寫(xiě)操作而讀操作,

          *P_TimerA_Ctrl代表開(kāi)啟什么頻率的中斷,*P_TimerA_Data 是初始到溢出的位置

          #include "SPCE061A.H"
          unsigned Output = 0x0000;
          void IRQ1()__attribute__((ISR));
          void IRQ1()
          {
          *P_INT_Clear = 0x1000;
          Output=~Output;
          *P_IOA_Data=Output;
          }
          int main()
          {
          __asm("INT OFF");
          *P_IOA_Dir = 0x00ff;
          *P_IOA_Attrib = 0x00ff;
          *P_IOA_Data = 0x0000;

          *P_INT_Ctrl = 0x1000;
          *P_TimerA_Ctrl = 0x000d;
          *P_TimerA_Data = 0xffff-1024;
          __asm("INT IRQ");
          while(1)
          {
          *P_Watchdog_Clear=C_WDTCLR;
          }
          }



          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉