|
|||||||||||
| 技術(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 |
430單片機(jī)的程序問題 |
| 作者:kokay 欄目:單片機(jī) |
程序里的中斷是不是不能設(shè)置太過于頻繁? 比如我讓程序一直每10mS就產(chǎn)生一個(gè)中斷是否會(huì)干擾正常運(yùn)行? 假如我用一個(gè)定時(shí)器實(shí)現(xiàn)3種不同情況下的延時(shí),每種情況的延時(shí)時(shí)間是不一樣的 各位有什么好的辦法沒有? |
| 2樓: | >>參與討論 |
| 作者: hustpp 于 2006/9/28 17:19:00 發(fā)布:
10ms是肯定可以的 我用6M的晶振產(chǎn)生了0.1ms的中斷呢 |
|
| 3樓: | >>參與討論 |
| 作者: 李冬發(fā) 于 2006/9/29 0:11:00 發(fā)布:
回答第2個(gè)問題 用定時(shí)器A,定時(shí)器B則可以產(chǎn)生7個(gè)不同的定時(shí)! 1、初女臺(tái)化定時(shí)器 TACTL = TASSEL_SMCLK + TACLR + TAIE; // SMCLK, clear TAR TACCR0 = 500; TACCR1 = 1000; TACCR2 = 2000; TACCTL0 = CCIE; // CCR0 interrupt enabled TACTL |= MC_CONT; // Start Timer_A in overflow 這里有2個(gè)要注意的:定時(shí)器A的2個(gè)中斷都要開放,計(jì)時(shí)模式為continue。 2、中斷服務(wù)程序 有2個(gè),一個(gè)是的中斷,一個(gè)是TACCR1和TACCR2的中斷。在中斷服務(wù)程序的調(diào)整TACCR0、TACCR1和TACCR2的值。這個(gè)定時(shí)器不會(huì)象51那樣產(chǎn)生誤差。 // Timer A0 interrupt service routine // interrupt(TIMERA0_VECTOR) Timer_A0 (void) { // 調(diào)整下一次觸發(fā)時(shí)間 TACCR0 += 500; // Add Offset to CCR0 } // Timer A1 interrupt service routine // interrupt(TIMERA1_VECTOR) Timer_A1 (void) { SWITCH(TAIV) { case 2: //CCR1到時(shí)中斷 TACCR1 += 1000; // Add Offset to CCR0 break; case 4: //CCR2到時(shí)中斷 TACCR2 += 2000; // Add Offset to CCR0 break; case 10: // overflow,65.536ms break; } } |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |