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

          新聞中心

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

          凌陽16位單片機(jī)之IRQ4中斷

          作者: 時(shí)間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
          IRQ4中斷是由 b4 b5 b5三位來控制的

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

          實(shí)現(xiàn)功能:利用IRQ4三個(gè)時(shí)基中斷,即IRQ4_1kHz、IRQ4_2kHz和IRQ4_4kHz中斷,在各自的中斷服務(wù)程序中對相應(yīng)的變量進(jìn)行累加;并通過點(diǎn)亮、熄滅發(fā)光二極管來表示相應(yīng)變量計(jì)數(shù)器累加的速度;

          實(shí)驗(yàn)現(xiàn)象:D4和D5的亮滅周期為2s,D6和D7的亮滅周期為1s,D8~D11的亮滅周期為0.5s。

          這個(gè)需要有一個(gè)變量來計(jì)數(shù),


          #include "SPCE061A.H"
          #define sec2 0x0003 //宏定義,低八位的低兩個(gè)口
          #define sec1 0x000c
          #define sec5 0x00f0
          unsigned int i,j;

          void IRQ4(void)__attribute__((ISR));


          void IRQ4()
          {
          static unsigned int IRQ_2=0,IRQ_1=0,IRQ_4=0;//設(shè)置三個(gè)計(jì)數(shù)器
          //unsigned int IRQ42,IRQ41,IRQ44;
          //unsigned int Output = 0x0000,i;
          //*P_IOA_Data=0x00ff;
          //asm("INT OFF");
          if(*P_INT_Ctrl & C_IRQ4_1KHz)//1024
          {
          if(++IRQ_1>=2048)
          {
          IRQ_1=0;
          if(((*P_IOA_Buffer)&sec2)==0)
          {
          *P_IOA_Data+=sec2;
          }
          else
          {
          *P_IOA_Data-=sec2;
          }
          }
          //通過判斷亮暗來進(jìn)行加減 下面兩個(gè)都是類似的
          *P_INT_Clear = C_IRQ4_1KHz;
          }

          if(*P_INT_Ctrl & C_IRQ4_2KHz)//2048
          {
          if(++IRQ_2>=2048)
          {
          IRQ_2=0;
          if(((*P_IOA_Buffer)&sec1)==0)
          {
          *P_IOA_Data+=sec1;
          }
          else
          {
          *P_IOA_Data-=sec1;
          }
          }
          *P_INT_Clear = C_IRQ4_2KHz;
          }


          if(*P_INT_Ctrl & C_IRQ4_4KHz)//4096
          {
          IRQ_4++;
          if(IRQ_4>=2048)
          {
          IRQ_4=0;
          if(((*P_IOA_Data)&sec5)==0)
          {
          (*P_IOA_Data)=(*P_IOA_Data)+sec5;
          }
          else
          {
          (*P_IOA_Data)=(*P_IOA_Data)-sec5;
          }
          }
          *P_INT_Clear =C_IRQ4_4KHz;
          }
          //asm("INT IRQ");
          }

          int main()
          {
          *P_IOA_Dir = 0x00ff;
          *P_IOA_Attrib = 0x00ff;
          *P_IOA_Data = 0x0000;

          *P_INT_Ctrl = C_IRQ4_2KHz+C_IRQ4_1KHz+C_IRQ4_4KHz;//01110000 開啟了IRQ4的三種不同頻率的中斷
          asm("INT IRQ");

          while(1)
          {
          *P_Watchdog_Clear = 0x0001;
          }
          return 0;
          }



          評論


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