|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
為什么我寫的程序,不能延時,我把程序貼出來 |
| 作者:鄭勇 欄目:單片機 |
#include "main.h" __CONFIG (HS & WDTDIS); void Init(void) { di(); CMCON=0x07; TRISIO =0x3e; OPTION=0X87; PIE1=0x01; T1CON=0x14; INTCON|=0x10; //中斷控制寄存器 PIR1=0X00; //清中斷標(biāo)志 ei(); WorkFlag=0x00; CountNum=0; GPIO0=0; } void StartRun(void) { DISCOUNT; CountNum=TMR1H; CountNum=CountNum<<8; CountNum+=TMR1L; CountNum=CountNum/1000; CountNum=1000/CountNum; CountNum=CountNum*60; ENCOUNT; BitSet(WorkFlag, Fire); if(CountNum<=2000) OutFun( TimerNum[0]); else MidstSpeed(); return; } void OutFunLow(void) { if(!GPIO2) { GPIO0=!GPIO0; //if(GPIO0) // GPIO0=0; //else // GPIO0=1; BitClr(WorkFlag,Fire); } } void MidstSpeed(void) { unsigned CHAR c; if((CountNum>4000)&&(CountNum<8000)) OutFun( TimerNum[18]); else{ c=CountNum/100; SWITCH(c) { case 20: OutFun( TimerNum[0]); break; case 21: OutFun( TimerNum[1]); break; case 22: OutFun( TimerNum[2]) ; break; case 23: OutFun( TimerNum[3]) ; break; case 24: OutFun( TimerNum[4]) ; break; case 25: OutFun( TimerNum[5]) ; break; case 26: OutFun( TimerNum[6]) ; break; case 27: OutFun( TimerNum[7]) ; break; case 28: OutFun( TimerNum[8]) ; break; case 29: OutFun( TimerNum[9]) ; break; case 30: OutFun( TimerNum[10]) ; break; case 31: OutFun( TimerNum[11]) ; break; &n |
| 2樓: | >>參與討論 |
| 作者: 89769975 于 2006/10/19 16:34:00 發(fā)布:
好暈 根據(jù)現(xiàn)象分析吧,看程序好暈,只調(diào)試延時試試。 |
|
| 3樓: | >>參與討論 |
| 作者: fzj 于 2006/10/19 16:48:00 發(fā)布:
re delay(2,2);//有兩個參數(shù)嗎? void Delay(unsigned int t) { while(--t) { ; ; } } |
|
| 4樓: | >>參與討論 |
| 作者: lxrlxr 于 2006/10/20 16:03:00 發(fā)布:
沒有調(diào)用delay吧? void main(void) { Init(); while(1) { asm("clrwdt"); ; } } |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |