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

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

請教關(guān)于PC104的外部中斷 IRQ9/10/11的獲得。

作者:vodoo 欄目:嵌入式系統(tǒng)
請教關(guān)于PC104的外部中斷 IRQ9/10/11的獲得!!
這里我們用到了PC104的外部中斷 IRQ9/10/11,希望通過外部發(fā)送一個(gè)脈沖引起IRQ中斷響應(yīng)!
相應(yīng)的中斷程序如下:

void irqIntOpen() //開中斷
{
    int TEMP;    
    oldvect = getvect(0x71); //保存原中斷向量
    setvect(0x71,intSerProgram); //裝入中斷服務(wù)程序入口地址
    TEMP = inportb(0x21) & 0xFB;//打開主片IRQ2
    outportb(0x21, TEMP);
    TEMP = inportb(0xA1) & 0xF7;//打開從片IRQ11
    outportb(0xA1, TEMP);
}
void interrupt intSerProgram() //中斷服務(wù)程序
{
    readData(); //中斷服務(wù)程序代碼
    
    outportb(0xA0,0x20); //向從片ICR送EOI命令
    outportb(0x20,0x20); //向主片ICR送EOI命令
    irqIntClose();
    
}
void irqIntClose() //關(guān)中斷
{
    int TEMP;
    setvect(0x71, oldvect); //恢復(fù)原中斷向量
    TEMP = inportb(0x21) | ~(0xFB);//關(guān)主片IRQ2
    outportb(0x21, TEMP);
    TEMP = inportb(0xA1) | ~(0xF7);//關(guān)從片IRQ11
    outportb(0xA1, TEMP);
}

初始化8259的代碼如下:
void init8259(void)
{
    outportb(0x20,0x11); //設(shè)置為邊沿觸發(fā)方式
    outportb(0xa0,0x11);
    ......
}

主程序
void main(void)
{
      init8259();//初始化8259
      init();//常規(guī)初始化
      irqIntOpen();//中斷開放
      while(1) //等待中斷
      {
            ;
      }

}
調(diào)試的時(shí)候,一執(zhí)行到"outportb(0x20,0x11)"語句,就出現(xiàn)“divide overflow”
請高手指點(diǎn)一下!


參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
怎么用一個(gè)Const的指針數(shù)組存儲(chǔ)我的函數(shù)地址?
c51中指針數(shù)組的問題--請教
FLASH 擴(kuò)展請教!
求助!——二氧化碳傳感器
求助:VxWorks在DiskOnChip2000上的啟動(dòng)問題
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


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