|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
已經(jīng)盡力了,確實沒轍了,來請教大家了 |
| 作者:wh.wb 欄目:ARM技術(shù) |
做一個捕獲實驗: 利用P0.22引腳做為捕獲端,在捕獲信號的上下沿分別控制LED4的亮和滅.系統(tǒng)的時鐘節(jié)拍輸出到LED3,作為觀察使用.這里,我設(shè)置了TIMER1作為系統(tǒng)時鐘節(jié)拍,TIMER0用來捕獲中斷. 上電時,如果沒有外部捕獲信號輸入,可以觀察到LED3輸出一方波,說明此時系統(tǒng)工作正常.而當(dāng)外部的捕獲信號輸入時,LED4沒有輸出,并且LED3也無輸出了. 請大家?guī)兔Ψ治鲆幌?是什么原因? int main (void) { OSInit(); OSTaskCreate(Adc_Task, (void *)0, &Adc_TaskStk[TASK_STK_SIZE - 1], 12); OSStart(); return 0; } void Timer0_Exception(void) { while(T0IR != 0){ if((T0IR & (1<<4)) != 0){ // 判斷是否捕獲通道0 T0IR = (1<<4); // 清除捕獲通道0事件中斷標(biāo)志 if((IO0PIN & 0x02000000) == 0) { IO0SET = 0x02000000; } else { IO0CLR = 0x02000000; } } } VICVectAddr = 0x00; } void Timer0_Init(void) { PINSEL1 &= ~(1<<12); // CAP0.0管腳連接模塊,相應(yīng)的位要變成10 PINSEL1 |= (1<<13); // CAP0.0管腳連接模塊,相應(yīng)的位要變成10 T0MCR = 0; T0IR |= 0xFF; // 清除匹配、捕獲通道0事件的中斷標(biāo)志 T0TCR = 0x02; // 復(fù)位T0TC T0CCR |= (1<<0); // cap0.0上的上升沿跳變將TC內(nèi)容裝入CR0 T0CCR |= (1<<1); // cap0.0上的下降沿跳變將TC內(nèi)容裝入CR0 T0CCR |= (1<<2); // cap0.0上的捕獲裝載產(chǎn)生中斷 T0TC = 0x00; // 清0計數(shù)器 VICVectCntl5 = 0x20|4; // 定時器0中斷通道分配優(yōu)先級5 VICVectAddr5 = (uint32)Timer0_Exception; // 設(shè)置中斷服務(wù)程序地址向量 VICIntEnable = (1<<4); // 使能定時器0中斷 T0TCR = 0x01; // 啟動T0TC } void Adc_Task(void *pdata) { pdata = pdata; // 避免編譯警告 MCU_Init(); TargetInit(); // 目標(biāo)板初始化 Timer0_Init(); IO0DIR = 0x03000000; // 設(shè)置LED3,LED4控制口為輸出 for (;;) { OSTimeDly(OS_TICKS_PER_SEC / 10); } } void Timer1_Exception(void) {定時器1作為系統(tǒng)時鐘節(jié)拍 T1IR = 0x01; VICVectAddr = 0; // 通知中斷控制器中斷結(jié)束 if((IO0PIN & 0x01000000) == 0) { IO0SET = 0x01000000; } else { IO0CLR = 0x01000000; } OSTimeTick(); } |
| 2樓: | >>參與討論 |
| 作者: local_mach 于 2005/7/21 13:14:00 發(fā)布:
好像是芯片BUG |
|
| 3樓: | >>參與討論 |
| 作者: wh.wb 于 2005/7/21 15:38:00 發(fā)布:
我是在EasyARM2100開發(fā)板上做的實驗 |
|
| 4樓: | >>參與討論 |
| 作者: wh.wb 于 2005/7/22 9:09:00 發(fā)布:
拜托大家 知道是什么原因的高手請告知,我謝謝您了! 周立功公司的工程師們,有沒有知道的? |
|
| 5樓: | >>參與討論 |
| 作者: 深思 于 2005/7/22 9:34:00 發(fā)布:
re 現(xiàn)象只有“LED4沒有輸出,并且LED3也無輸出了”,不好判斷哪里有問題。 在void Timer0_Exception(void) 中設(shè)置斷點來捕捉中斷,然后單不跟,看程序如何走。 如果到不了該斷點就死機(jī),那么問題在此處之前,否則在此處之后。 就這樣一步步找下去。 程序是調(diào)出來的。 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |