|
|||||||||||
| 技術(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í)總是不能穩(wěn)定工作,請(qǐng)高手幫忙亞 |
| 作者:lh9865 欄目:單片機(jī) |
我的程序是要做采樣的,檢測(cè)采樣的結(jié)果,根據(jù)結(jié)果決定二極管點(diǎn)亮的頻率,二極管點(diǎn)亮是通過(guò)定時(shí)做的 現(xiàn)在我單獨(dú)多定時(shí)程序讓二極管按一定頻率點(diǎn)亮,可以正常;采樣程序也能正常工作,但是一旦采樣加了定時(shí),二極管一上電就 一直點(diǎn)亮,采樣能夠正常工作,二極管不能按照預(yù)先的頻率點(diǎn)亮關(guān)斷,我找不到原因了,請(qǐng)高手幫忙呢 void interrupt clkint(void) //中斷服務(wù)程序 { TMR0=0x01; //對(duì)TMR0寫(xiě)入一個(gè)調(diào)整值。因?yàn)閷?xiě)入TMR0后接著的 //兩個(gè)周期不能增量,中斷需要3個(gè)周期的響應(yīng)時(shí)間, //以及C語(yǔ)言自動(dòng)進(jìn)行現(xiàn)場(chǎng)保護(hù)要消耗周期 T0IF=0; //清除中斷標(biāo)志 CLRWDT(); //????????? serg=serg+1; //中斷計(jì)數(shù)器加1 if(serg==20) //中斷次數(shù)為20后,才對(duì)S0,S1,S2,S3操作 { serg=0; S0=S0+1; if(S0==10) { S0=0; S1=S1+1; if(S1==10) { S1=0; S2=S2+1; if(S2==time0) { S2=0; RB1=!RB1;//定時(shí)時(shí)間到信號(hào)翻轉(zhuǎn),二極管點(diǎn)亮或關(guān)斷 } } } } } void main(void) { adinitial(); //A/D轉(zhuǎn)換初始化 initial(); //系統(tǒng)各I/O 口初始化 tmint(); //TMR0初始化子程序 ADIE=0; //屏蔽ADC溢出后產(chǎn)生中斷 T0IE=1; GIE=1; TMR0=0x01; time0=0x02; while(1) { ADGO=1; while(ADGO); //等待采樣完成 adresult=ADRES; DISPLAY(adresult); //顯示程序 } } * - 本貼最后修改時(shí)間:2006-6-20 8:44:21 修改者:lh9865 |
| 2樓: | >>參與討論 |
| 作者: lh9865 于 2006/6/20 8:46:00 發(fā)布:
怎么沒(méi)有人回復(fù)呢 |
|
|
|
| 免費(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) |