| 
  |||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe  | 
  
幫忙解決捕獲中斷的問題! | 
  
| 作者:whly001 欄目:DSP技術 | 
我現在用的是dsp2407,要捕獲市電頻率,但是要捕獲兩次之后才能進入中斷,有沒有什么辦法解決啊,急求!  | 
  
| 2樓: | >>參與討論 | 
| 作者: whly001 于 2005/10/2 18:28:00 發(fā)布:
         有沒有人可以幫忙搞定?  | 
  |
| 3樓: | >>參與討論 | 
| 作者: whly001 于 2005/10/2 18:31:00 發(fā)布:
         捕獲兩次之后才能進入中斷,附程序! main() /* the main pogram*/ { initial() ; timer12int(); cap4int(); *T1CON=*T1CON|0x0040; *T2CON=*T2CON|0x0040; /* *T3CON=*T3CON|0x0040; */ /* *CAPCONB=0x2240; */ while(1) { } } /* the end of main program*/ initial() /*系統(tǒng)初始化子程序 initialize the SYSTEM*/ { asm(" setc SXM "); asm(" setc OVM "); asm(" setc INTM "); asm(" clrc CNF "); *SCSR1=0x029D; *SCSR2=0x0e; /* MP module--0x0e , MC module--0x0a */ *WDCR=0x06f; /* disable the dog*/ *IMR=0x0000; *IFR=0x0ffff; } /* the end of initialization */ cap4int() { *T2PR=0xffff; *T2CON=0x1400; *T2CNT=0x00; WSGR=0x0000; /* CLOSE all the waiting */ *CAPCONA=0x2040; *CAPCONA=0x2040; *CAPCONA=0x2040; /* cc=*CAPFIFOB&0x0300; */ asm(" clrc INTM "); *IMR=0x0a; *EVAIMRC=*EVAIMRC|0x0001; /* cap4 */ *EVAIFRC=*EVAIFRC|0x0001; bb=*CAPFIFOA&0x0300; *EVAIMRB=*EVAIMRB&0xff00; /* t2 campare */ *EVAIFRB=*EVAIFRB|0x02; } interrupt void t2ufinta() /*定時器2比較中斷服務程序*/ { unsigned int flaga; unsigned int temp11,temp22; unsigned int adc_start; ww++; flaga=*EVAIFRB&0x02; flaga=*EVAIFRB&0x02; if(flaga==0x02&&kk<60) { i_1[kk]=*T2CNT; /* kk++; */ } if(flaga!=0x02) /* 此處不是0x01 */ {asm(" clrc INTM "); return; } *PADATDIR=*PADATDIR|0x0080; delay(); *PADATDIR=*PADATDIR&0xff7f; /*IOPa7*/ *EVAIFRB=*EVAIFRB|0x02; *EVAIFRB=*EVAIFRB|0x02; *EVAIFRB=*EVAIFRB|0x02; asm(" clrc INTM "); return; } interrupt void phantom() /*假中斷*/ { /* *WDKEY=0X5555; */ /* *WDKEY=0XFFFF; */ asm(" clrc INTM " ); return; } interrupt void capture() /*同步脈沖捕獲*/ { int flag; flag=*EVAIFRC&0x01; if(flag!=0x01) { asm(" clrc INTM "); www++; return; } /* if(kk==0) { cc=*CAP1FIFO; dd=*CAPFIFOA; } if(kk==1) ff=*CAPFIFOA&0x0300; */ if(kk<50) { i_1[kk]=*CAP1FIFO; result[kk]=*T2CNT; i_2[kk]=*T1CNT; if(kk==0) ee=*CAPFIFOA; kk++; /* *T1CMPR=gg+2*kk; */ } /* *PADATDIR=*PADATDIR|0x0040; delay(); *PADATDIR=*PADATDIR&0xffbf; */ /*IOPa6*/ *EVAIFRC=*EVAIFRC|0x01; *EVAIFRC=*EVAIFRC|0x01; *EVAIFRC=*EVAIFRC|0x01; /* *T2CNT=0x00; */ asm(" clrc INTM "); return; } &  | 
  |
  | 
    
 
  | 
  
| 免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入 | 
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號  |