可能不是你最想要的,但是可以大致滿足你的要求。另外還可以借助DOS的at命令進(jìn)行計(jì)劃任務(wù)。
創(chuàng)新互聯(lián)業(yè)務(wù)包括:成品網(wǎng)站、企業(yè)產(chǎn)品展示型網(wǎng)站建設(shè)、品牌網(wǎng)站制作、電子商務(wù)型網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)(多語(yǔ)言)、商城網(wǎng)站定制開(kāi)發(fā)、按需求定制制作、全網(wǎng)營(yíng)銷(xiāo)推廣等。效率優(yōu)先,品質(zhì)保證,用心服務(wù)是我們的核心價(jià)值觀,我們將繼續(xù)以良好的信譽(yù)為基礎(chǔ),秉承穩(wěn)固與發(fā)展、求實(shí)與創(chuàng)新的精神,為客戶提供更全面、更優(yōu)質(zhì)的互聯(lián)網(wǎng)服務(wù)!
寫(xiě)個(gè)處理的程序,然后操作系統(tǒng)做一個(gè)計(jì)劃任務(wù)定時(shí)調(diào)用這個(gè)程序。
要是定時(shí)執(zhí)行一段代碼的話可以把代碼做成一個(gè)函數(shù),在代碼執(zhí)行前加個(gè)標(biāo)志位,如果條件成立就執(zhí)行,不成立就不執(zhí)行,在定時(shí)中斷中設(shè)置標(biāo)志位。
具體就是先開(kāi)中斷允許標(biāo)志位(IE里面對(duì)應(yīng)的各個(gè)位)在設(shè)定TMOD工作方式。下一步就是設(shè)定初始值了(TH、TL)。設(shè)置完這些就可以開(kāi)定時(shí)器了。
如:c++builder中有timer控件,可以設(shè)置每一個(gè)固定時(shí)間執(zhí)行一段代碼(如每1秒鐘),代碼中判斷該時(shí)間是否和計(jì)算機(jī)時(shí)間相同,相同就觸發(fā)消息 也可以:用while(1)循環(huán),循環(huán)中加入sleep(毫秒)函數(shù)。
--- 如果是12M晶振的話,那么定時(shí)器一個(gè)計(jì)數(shù)頻率是12M / 12 = 1M,即一個(gè)計(jì)數(shù)周期是1us。你給的程序看出,是定時(shí)器工作在MODE1。16位計(jì)數(shù)器。但是你給的程序應(yīng)該有問(wèn)題。
利用定時(shí)器計(jì)數(shù),在程序中判斷,如果超過(guò)指定時(shí)間,退出。比如:定時(shí)器設(shè)置1秒計(jì)數(shù)一次。第一個(gè)程序,計(jì)數(shù)達(dá)到60秒,退出。
nIDEvent: 為設(shè)定的定時(shí)器指定的定時(shí)器標(biāo)志值,設(shè)置多個(gè)定時(shí)器的時(shí)候,每個(gè)定時(shí)器的值都不同,消息處理函數(shù)就是通過(guò)這個(gè)參數(shù)來(lái)判斷是哪個(gè)定時(shí)器的。這里我們?cè)O(shè)定為1。nElapse: 指定發(fā)送消息的時(shí)間間隔,單位是毫秒。
1、CLOCK()函數(shù):clock()是C/C++中的計(jì)時(shí)函數(shù),而與其相關(guān)的數(shù)據(jù)類(lèi)型是clock_t。
2、用difftime函數(shù)可以計(jì)算兩個(gè)time_t類(lèi)型的時(shí)間的差值,可以用于計(jì)時(shí)。用difftime(t2,t1)要比t2-t1更準(zhǔn)確,因?yàn)镃標(biāo)準(zhǔn)中并沒(méi)有規(guī)定time_t的單位一定是秒,而difftime會(huì)根據(jù)機(jī)器進(jìn)行轉(zhuǎn)換,更可靠。
3、建議使用time gettimeofday函數(shù)來(lái)計(jì)時(shí)。
4、clock() 頭文件:time.h 函數(shù)原型:clock_t clock(void); 功能:該函數(shù)返回值是硬件滴答數(shù),要換算成秒,需要除以CLK_TCK或者 CLK_TCKCLOCKS_PER_SEC。比如,在VC++0下,這兩個(gè)量的值都是1000。
需要注意的是:任務(wù)處理的時(shí)間不能大于周期間隔時(shí)間。另外,在定時(shí)器使用完畢后,應(yīng)及時(shí)調(diào)用timeKillEvent()將之釋放 對(duì)于精確度要求更高的定時(shí)操作,則應(yīng)該使用QueryPerformanceFrequency()和QueryPerformanceCounter()函數(shù)。
在精度要求較高的情況下,VC中可以利用GetTickCount()函數(shù),該函數(shù)的返回值是 DWORD型,表示以ms為單位的計(jì)算機(jī)啟動(dòng)后經(jīng)歷的時(shí)間間隔。
不同的是timer是一個(gè)定時(shí)器,可以指定回調(diào)函數(shù),默認(rèn)為OnTimer()函數(shù)。 精度:timer事件的精度范圍在毫米級(jí)別,系統(tǒng)越忙其精度也就越差。3:C語(yǔ)言下的Time 使用:time_t t;time(&t);Time函數(shù)是獲取當(dāng)前時(shí)間。
參數(shù)1,定時(shí)器ID 參數(shù)2,回調(diào)函數(shù)多久被調(diào)用一次,單位為千分之一秒、參數(shù)3,回調(diào)函數(shù),如果為NULL,則調(diào)用OnTimer 另外一個(gè)方法是使用線程,但這會(huì)麻煩些。如果你剛開(kāi)始是學(xué)VB的。
TR1分別啟動(dòng)兩個(gè)定時(shí)器。PT0置為“1”,就可以中斷定時(shí)器1的服務(wù)函數(shù),相反,如果PT1置為“1”就可以中斷定時(shí)器0的服務(wù)函數(shù)。 如果不設(shè)置PT的值,默認(rèn)為“0”,這樣的話,T0和T1誰(shuí)也不能中斷誰(shuí)。
omsTimer函數(shù)是處理定時(shí)事件,void(*handle)(union sigval v)參數(shù)就是處理事件的函數(shù)指針。int omsSetTimer(timer_t *tId,int value,int interval)就是設(shè)置定時(shí)器。
可以看到每過(guò)千分之一秒(1毫秒),調(diào)用clock函數(shù)返回的值就加1。C語(yǔ)言是一門(mén)通用計(jì)算機(jī)編程語(yǔ)言,應(yīng)用廣泛。
最簡(jiǎn)單是用間隔定時(shí)器...你查下這幾個(gè)函數(shù):timer_create,timer_settime等。
Linux C函數(shù)。頭文件:sys/time.h 函數(shù)原型:int gettimeofday(struct timeval *tv,struct timezone *tz);說(shuō)明:其參數(shù)tv是保存獲取時(shí)間結(jié)果的結(jié)構(gòu)體,參數(shù)tz用于保存時(shí)區(qū)結(jié)果(若不使用則傳入NULL即可)。
本文名稱(chēng):c語(yǔ)言定時(shí)函數(shù) c語(yǔ)言定時(shí)函數(shù)怎么寫(xiě)
分享路徑:http://chinadenli.net/article9/dehpcoh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站改版、網(wǎng)站收錄、微信公眾號(hào)、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容