久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2665|回復(fù): 5
收起左側(cè)

FMD60F010單片機(jī)URT外部中斷問(wèn)題?

[復(fù)制鏈接]
ID:468169 發(fā)表于 2021-10-18 22:50 | 顯示全部樓層 |閱讀模式
300黑幣

求教大師,我現(xiàn)在是用外部中斷去控制燈的三段占空比,現(xiàn)在發(fā)現(xiàn)在if(scale==40)     { scale=20;}是它會(huì)延時(shí)3秒才能跳到scale=20這里,是什么原因,還有一個(gè)問(wèn)題就是我要改小它的電流功耗,需要設(shè)置哪里,我試過(guò)改變晶振頻率它電流沒(méi)有減小。
單片機(jī)源程序如下:
  1. //*********************************************************
  2. #include "SYSCFG.h"

  3. //**********************************************************
  4. //***********************宏定義*****************************
  5. #define  unchar     unsigned char
  6. #define  unint      unsigned int
  7. #define  unlong     unsigned long

  8. #define  PortOut        RA4


  9.   unchar scale=40;
  10.   unchar n;
  11. /*-------------------------------------------------
  12. *  函數(shù)名:interrupt ISR1
  13. *        功能:  中斷處理函數(shù)
  14. *  輸入:  無(wú)
  15. *  輸出:  無(wú)
  16. --------------------------------------------------*/
  17. void interrupt ISR(void)//PIC_HI-TECH使用
  18. {
  19.   //PA2外部中斷處理**********************
  20.         if(INTE && INTF)      
  21.         {


  22.                 INTF = 0;                  //清PA2 INT 標(biāo)志位
  23.                
  24.         }

  25.   //定時(shí)器2的中斷處理**********************

  26.         if(TMR2IE && TMR2IF)                        //200us中斷一次 = 2.5KHz
  27.         {
  28.                    TMR2IF = 0;
  29.             n++;
  30.                 if(n<scale)                 //n<設(shè)置比例時(shí),打開(kāi)燈
  31.         {         
  32.                         PortOut=1;
  33.                     
  34.         }
  35.       

  36.         else if(n>=scale)//n大于等于設(shè)置比例時(shí) 關(guān)閉燈
  37.         {         
  38.                 PortOut=0;  

  39.         }


  40.         if(n==40)                 
  41.         {
  42.                 n=0;                 //n=0
  43.         }


  44.         }
  45. }
  46. // --------------------------------------------------*/

  47. /*-------------------------------------------------
  48. *  函數(shù)名:POWER_INITIAL
  49. *        功能:  上電系統(tǒng)初始化
  50. *  輸入:  無(wú)
  51. *  輸出:  無(wú)
  52. --------------------------------------------------*/      
  53. void POWER_INITIAL (void)
  54. {
  55.          
  56.         OSCCON = 0B01100001;        //WDT 32KHZ IRCF=111=16MHZ/4=4MHZ,0.25US/T
  57.                                                          //Bit0=1,系統(tǒng)時(shí)鐘為內(nèi)部振蕩器(60F01x保留位)
  58.                                                          //Bit0=0,時(shí)鐘源由FOSC<2:0>決定即編譯選項(xiàng)時(shí)選擇
  59.         INTCON = 0;                          //暫禁止所有中斷
  60.         PORTA = 0B00000000;               
  61.         TRISA = 0B00000100;                //PA輸入輸出 0-輸出 1-輸入
  62.                                                         //PA1->輸出
  63.         WPUA = 0B00000100;             //PA端口上拉控制 1-開(kāi)上拉 0-關(guān)上拉

  64.         OPTION = 0B00001000;        //Bit3=1 WDT MODE,PS=000=1:1 WDT RATE
  65.                                                         //Bit3 預(yù)分頻器分配位 0-Timer0 1-WDT
  66.                                                         //Bit7(PAPU)=0 ENABLED PULL UP PA
  67.         MSCKCON = 0B00000000;   //Bit6->0,禁止PA4, PC5穩(wěn)壓輸出(60F01x保留位)
  68.                                                           //Bit5->0,TIMER2時(shí)鐘為Fosc(60F01x保留位)
  69.                                                           //Bit4->0,禁止LVR(60F01x O版之前)
  70.                             //Bit4->0, LVREN使能時(shí),開(kāi)啟LVR(60F01x O版及O版后)  
  71.                                 //Bit4->1, LVREN使能時(shí),工作時(shí)開(kāi)啟LVR, 睡眠時(shí)自動(dòng)關(guān)閉LVR(60F01x O版及O版之后)      
  72. }

  73. /*-------------------------------------------------
  74. *  函數(shù)名: INT_INITIAL
  75. *        功能:  中斷初始化函數(shù)
  76. *  輸入:  無(wú)
  77. *  輸出:  無(wú)
  78. --------------------------------------------------*/
  79. void INT_INITIAL(void)
  80. {
  81.         TRISA2 =1;                                                 //SET PA2 INPUT
  82.         INTEDG = 0;                                         //OPTION,INTEDG=0;PA2 INT 為下降沿觸發(fā)
  83.         INTF =0;                                                   //清PA2 INT中斷標(biāo)志位
  84.         INTE =1;                                                   //使能PA2 INT中斷?
  85. }

  86. /*-------------------------------------------------
  87. * 函數(shù)名稱:  TIMER2_INITIAL
  88. * 功能:     初始化設(shè)置定時(shí)器1
  89. * 相關(guān)寄存器:T2CON TMR2 PR2 TMR2IE TMR2IF PEIE GIE  
  90. -------------------------------------------------*/
  91. void TIMER2_INITIAL (void)
  92. {
  93.         T2CON = 0B00000001;         //Bit[1,0]=01,T2時(shí)鐘分頻 1:4
  94.                                                         //Bit[6-3]=0000,T2輸出時(shí)鐘分頻1:1
  95.         TMR2 = 0;                                  //TMR2賦初值
  96.         PR2 = 10;                                 //設(shè)置TMR2輸出比較值定時(shí)200us=(1/16000000)*4*4*200(PR2)
  97.                                                         //16M-4T-4分頻
  98.         TMR2IF = 0;                                //清TIMER2中斷標(biāo)志
  99.         TMR2IE = 1;                                //使能TIMER2的中斷
  100.         TMR2ON = 1;                                //使能TIMER2啟動(dòng)
  101.         PEIE=1;                                    //使能外設(shè)中斷
  102.         GIE = 1;                                   //使能全局中斷

  103. }
  104. /*-------------------------------------------------
  105. *        函數(shù)名稱:DelayUs
  106. *        功能:   短延時(shí)函數(shù) --16M-2T--大概快1%左右.
  107. *        輸入?yún)?shù):Time 延時(shí)時(shí)間長(zhǎng)度 延時(shí)時(shí)長(zhǎng)Time Us
  108. *        返回參數(shù):無(wú)
  109. -------------------------------------------------*/
  110. void DelayUs(unsigned char Time)
  111. {
  112.         unsigned char a;
  113.         for(a=0;a<Time;a++)
  114.         {
  115.                 CLRWDT();
  116.         }
  117. }                  
  118. /*----------------------------------------------------
  119. *        函數(shù)名稱:DelayMs
  120. *        功能:   短延時(shí)函數(shù)
  121. *        輸入?yún)?shù):Time延時(shí)時(shí)間長(zhǎng)度 延時(shí)時(shí)長(zhǎng)Time ms
  122. *        返回參數(shù):無(wú)
  123. ----------------------------------------------------*/
  124. void DelayMs(unsigned char Time)
  125. {
  126.         unsigned char a,b;
  127.         for(a=0;a<Time;a++)
  128.         {
  129.                 for(b=0;b<5;b++)
  130.                 {
  131.                          DelayUs(98);         //快1%
  132.                 }
  133.         }
  134. }
  135. /*----------------------------------------------------
  136. *        函數(shù)名稱:DelayS
  137. *        功能:   短延時(shí)函數(shù)
  138. *        輸入?yún)?shù):Time延時(shí)時(shí)間長(zhǎng)度 延時(shí)時(shí)長(zhǎng)Time S
  139. *        返回參數(shù):無(wú)
  140. ----------------------------------------------------*/
  141. void DelayS(unsigned char Time)
  142. {
  143.         unsigned char a,b;
  144.         for(a=0;a<Time;a++)
  145.         {
  146.                 for(b=0;b<10;b++)
  147.                 {
  148.                          DelayMs(100);        
  149.                 }
  150.         }
  151. }
  152. /*-------------------------------------------------
  153. *  函數(shù)名: main
  154. *        功能:  主函數(shù)
  155. *  輸入:  無(wú)
  156. *  輸出:  無(wú)
  157. --------------------------------------------------*/
  158. void main()
  159. {

  160.         POWER_INITIAL();                //系統(tǒng)初始化


  161.         TIMER2_INITIAL();                  //初始化T2
  162.       
  163.         while(1)
  164.         {


  165.                  
  166.            if(RA2==0)
  167.          {



  168.           DelayMs(2);

  169.              if(scale==40)                         //如果占空比為            
  170.                               
  171.                                     {
  172.                               
  173.                                          scale=20;                                        ////占空比賦值為,
  174.                                  
  175.                              
  176.                                         }

  177.                                  else if(scale==20)

  178.                                         {

  179.                                                    scale=5;  
  180.                                                           ;
  181.                                         }

  182.                                 else if(scale==5)
  183.                                          {
  184.                                           
  185.                                            scale=40;        
  186.                                                 
  187.                                          }

  188.             INT_INITIAL();
  189.             GIE =1;                                            //使能全局中?
  190.          }
  191.      while(!RA2);







  192.         }


  193. }
復(fù)制代碼




回復(fù)

使用道具 舉報(bào)

ID:448556 發(fā)表于 2021-10-19 09:05 | 顯示全部樓層
按鍵處理你確定這樣寫?
回復(fù)

使用道具 舉報(bào)

ID:468169 發(fā)表于 2021-10-19 12:01 來(lái)自手機(jī) | 顯示全部樓層
liyezhao2019 發(fā)表于 2021-10-19 09:05
按鍵處理你確定這樣寫?

這不是按鍵,這是中斷
回復(fù)

使用道具 舉報(bào)

ID:468169 發(fā)表于 2021-10-19 12:02 來(lái)自手機(jī) | 顯示全部樓層
liyezhao2019 發(fā)表于 2021-10-19 09:05
按鍵處理你確定這樣寫?

其它的單片機(jī)維晟和STC已經(jīng)實(shí)現(xiàn)這個(gè)功能,只是現(xiàn)在要跟換單片機(jī),所以才改的……。
回復(fù)

使用道具 舉報(bào)

ID:548551 發(fā)表于 2021-10-20 11:11 | 顯示全部樓層
在工作了?
回復(fù)

使用道具 舉報(bào)

ID:468169 發(fā)表于 2021-10-24 02:32 來(lái)自手機(jī) | 顯示全部樓層
xqleft 發(fā)表于 2021-10-20 11:11
在工作了?

工作是工作了,現(xiàn)在優(yōu)化了下,撤換正常,就是很耗電,現(xiàn)在還搞不到省電模式
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久亚洲一区二区三区四区 | 国产精品一区二区久久精品爱微奶 | www.亚洲一区 | 久草视频在线播放 | 凹凸日日摸日日碰夜夜 | 福利视频网 | 超碰在线97国产 | h在线播放 | 男女网站视频 | 在线观看成年视频 | 亚洲一区 中文字幕 | 欧美在线高清 | 99久久婷婷国产综合精品 | 成人激情视频免费在线观看 | 精品一区二区电影 | 久久午夜精品福利一区二区 | 99久久精品免费看国产免费软件 | 日日摸天天添天天添破 | 免费午夜剧场 | 国产精品久久久久久久久久久久久 | 国产精品免费一区二区三区 | 国产一区二区免费在线 | 97视频免费| 精品中文在线 | 亚洲综合久久精品 | 日本在线一二 | 国产美女永久免费无遮挡 | 国产精品一码二码三码在线 | 久久一二 | 精品综合网 | 亚洲综合在线播放 | 日韩在线观看中文字幕 | 欧美一区二区三区在线看 | 一呦二呦三呦国产精品 | 日韩网站免费观看 | 成人久久18免费网站图片 | 国产精品久久久久久久久久东京 | 91精品久久久久久久久久小网站 | 日本国产一区二区 | 激情毛片 | 国产91观看|