最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網
技術交流 | 電路欣賞 | 工控天地 | 數字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe

遇到奇怪的問題,KEIL中T1、UART0中斷處理函數被編譯器忽略!

作者:emicro 欄目:單片機
遇到奇怪的問題,KEIL中T1、UART0中斷處理函數被編譯器忽略!
MCU為77E516,附上主要程序:
void main(void)
{    

    McuIint();
    EN1 = 1;
    T1_Init();
    UART_Init();
    
    EA = 1;
    while (1)
    {
        MainTask();    // 目前為空函數
                                }
}

void McuIint(void)
{
    EA = 0;                                    // 中斷禁止
    P1 = 0xff;                                // 初始化P1口
    PMR = 0x40;                                // 設定一個機器周期為4個振蕩器周期

    CKCON = 0x3c;                                // T0、T1、T2計數周期為4個振蕩器周期
    IP = 0x00;
    IE = 0x00;
    EIE = 0x00;

}

void T1_Init(void)
{
    TMOD &= 0x0F;     // 清除T1控制位(T0不變)
       TMOD |= 0x10;    // T1作為16位定時器
                                                                
    TH1 = T1_RELOADH;
    TL1 = T1_RELOADL;

         ET1 = 1;
         TR1 = 1;    
}

void UART_Init(void)
{
    T2MOD = 0;                                        // T2向上計數
     T2CON = 0x30;                                        // T2做波特率發(fā)生器  
                                                         
    RCAP2L = T2_RELOADL;
    RCAP2H = T2_RELOADH;
    TH2 = T2_RELOADH;
    TL2 = T2_RELOADL;    
    
    SCON0 = 0x50;                                    // 串口工作于方式1:8位數據,1位停止位,無奇偶校驗
    PCON = 0x80;                                    // 波特率加倍
    ES0 = 0;                                         // 串口中斷允許   1-enable
//    PS0 = 0;                                         // 串口中斷優(yōu)先級 1-高,0-低  
    TR2 = 0;                                        // 啟動T2  
}

void T1_ISR(void) interrupt 3
{            
    TR1 = 0;
       TH1  = T1_RELOADH;
       TL1  = T1_RELOADL;
    TR1  = 1;    
    
    KeyScan();
}
void UART_ISR(void)  interrupt 4
{
    TI=0;
}
結果編譯過后,KEIL報告說T1_ISR和UART_ISR是未使用的段
真是奇怪了,這到底是什么原因造成的呢?

2樓: >>參與討論
dreambird
re
很簡單,請問你在哪里掛接了這兩個ISR呢?ISR的地址是需要跟對應的中斷向量掛接的,建議你看看例程,很多例子都有一段初始化的匯編代碼,會有ISR的掛接。

3樓: >>參與討論
emicro
re
暈了,樓上兄弟,你不會以為我第一次用ISR吧,中斷向量是沒錯的,我以前也是這么用的,不知道這次怎么會遇到這種問題,兄弟們誰有相似的經歷嗎?

4樓: >>參與討論
dreambird
re
hehe,sorry

5樓: >>參與討論
ayb_ice
錯誤信息帖出來...
 
6樓: >>參與討論
thw
貌似是這樣。。。
函數調用前要聲明。建議把MAIN函數放在最后編譯下試試。

7樓: >>參與討論
lenglx
多半是你把中斷向量的選項搞丟了
在options of target "xxx" -> c51 -> interrupt vectors at 0
勾上.

8樓: >>參與討論
emicro
多謝lenglx!
確實跟你說的情況一樣,出錯的項目工程中 interrupt vectors at 0 被取消了。真納悶什么時候動過這個了,我的mian函數文件和項目文件不在一個文件夾,后來我把它們都提出來重建了一個項目就正常了,一直在懷疑是這個引起的,lenglx要是不說,我八成還暈著呢。多謝了!

參與討論
昵稱:
討論內容:
 
 
相關帖子
有沒有用過MCP3204
對于時鐘芯片,第一次要設置時間,以后怎樣避開這一段設置程序呢
80c196kb pga 管腳圖
51在哪個集成開發(fā)軟件下面好用?我用C
求教:單片機仿8255!
免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號