|
|||||||||||
| 技術(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 |
定時(shí)器的問題 |
| 作者:xinlibo 欄目:單片機(jī) |
我用的系統(tǒng)晶振是24MHZ的,應(yīng)該指令周期應(yīng)該是0.5us,初始化計(jì)數(shù)器初值應(yīng)該是12MHZ時(shí)的兩倍,下面這樣賦值: int pulse_times ; ; ; ; pulse_times=8960; pules*=2; TH1=(65536-pusle_times)/256; TL1=(65536-pulse_times)%256; ET1=1; TR1=1; ; ; 但是觀察輸出的波形 時(shí)間不到6ms 這是為什么,請(qǐng)高手指點(diǎn) |
| 2樓: | >>參與討論 |
| 作者: YBLYL78 于 2005/1/10 20:19:00 發(fā)布:
是否中斷優(yōu)先級(jí)那里沒有設(shè)置好? |
|
| 3樓: | >>參與討論 |
| 作者: 32768Hz 于 2005/1/11 8:40:00 發(fā)布:
我的分析: int pulse_times ; ; ; ; pulse_times=8960; pules*=2; //此處pules變量何處定義的 TH1=(65536-pusle_times)/256; //下面兩個(gè)pusle_times的值仍為8960 TL1=(65536-pulse_times)%256; ET1=1; TR1=1; ; ; 所以定時(shí)中斷時(shí)間為8960/2us,即4.48ms 另外這種定義重載時(shí)間方法會(huì)占用一定的RAM和ROM,你可以這樣: #define PUSLE_TIMES 8960*2 #define RELOAD_TH1 (65536-PUSLE_TIMES )%256 #define RELOAD_TH1 (65536-PUSLE_TIMES )/256 TH1=RELOAD_TH1; TL1=RELOAD_TL1; ET1=1; TR1=1; |
|
| 4樓: | >>參與討論 |
| 作者: xinlibo 于 2005/1/11 9:13:00 發(fā)布:
不能用預(yù)定義的: 我是做紅外發(fā)射用的,用定時(shí)中斷做紅外發(fā)射電平計(jì)時(shí)時(shí)用的!所以程序中要裝入一系列初值的! 在進(jìn)入發(fā)射程序的時(shí)候我關(guān)掉其他中斷,執(zhí)行完畢后,釋放其他中斷! 上面的pules 寫錯(cuò)了,就是上面定義的pulse_times; |
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |