|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | 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 |
大俠幫幫看:程序發(fā)生了中斷,為什么沒(méi)有執(zhí)行中斷函數(shù) |
| 作者:geergeer 欄目:單片機(jī) |
首先對(duì)瀏覽帖子的大俠表示衷心的感謝。小弟是在MPLAB IDE內(nèi)掛接PICC的,使用的芯片是16F877A,寫了一小段很簡(jiǎn)單的測(cè)試程序,在MPLAB SIM下仿真,發(fā)現(xiàn)程序執(zhí)行后,查看特殊功能寄存器,發(fā)現(xiàn)都得到了想要的值,計(jì)時(shí)器1溢出后,PIR1=0x01,INTCON=0x80,PIE1=0x01,都是對(duì)的啊,但是程序就是不進(jìn)入中斷處理程序執(zhí)行,而是在while語(yǔ)句那死循環(huán)了,為什么???程序如下: #include <pic.h> #include <pic168xa.h> bit flag; void main(void) { TMR1IF=0; TMR1IE=1; TMR1H=0xff; TMR1L=0xf0; T1CON=0x00; ei(); TMR1ON=1; while(!flag); flag=0; } void interrupt ISR(void) { if(TMR1IE&&TMR1IF) { TMR1IF=0; flag=1; } } |
| 2樓: | >>參與討論 |
| 作者: systemchip 于 2006/9/8 10:07:00 發(fā)布:
: TMR1ON=1; INTCON=0xC0; 加這句,將PEIE使能 while(!flag); flag=0; * - 本貼最后修改時(shí)間:2006-9-8 10:22:17 修改者:systemchip |
|
| 3樓: | >>參與討論 |
| 作者: geergeer 于 2006/9/8 10:39:00 發(fā)布:
感謝systemchip systemchip大俠已多次出手耐心的幫助菜鳥小弟,小弟在此鞠躬~~~~ |
|
| 4樓: | >>參與討論 |
| 作者: systemchip 于 2006/9/8 10:53:00 發(fā)布:
: 不必客氣.能解決問(wèn)題就好 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |