一、 使用時(shí)鐘和定時(shí)器(alarm系統(tǒng)調(diào)用)
成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元金溪做網(wǎng)站,已為上家服務(wù),為金溪各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
#include unistd.h
unsigned alarm(unsigned secs);
/*returns secs left on previous alarm or zero if none */
alarm也稱為鬧鐘函數(shù),它可以在進(jìn)程中設(shè)置一個(gè)定時(shí)器,當(dāng)指定的時(shí)間到時(shí),它向進(jìn)程發(fā)送SIGALRM信號。需要注意的是,一個(gè)進(jìn)程只能有一個(gè)定時(shí)器。當(dāng)報(bào)警開始時(shí),會發(fā)送一個(gè)SIGALRM,子進(jìn)程繼承其父進(jìn)程的報(bào)警時(shí)鐘值,但實(shí)際的時(shí)鐘并不共享。執(zhí)行exec后,報(bào)警時(shí)鐘仍然保持其設(shè)置。
alarm按照secs指定的秒數(shù)來設(shè)置時(shí)鐘,如果secs為0,則關(guān)閉報(bào)警時(shí)鐘,這樣做是很有必要的,如果recvfrom函數(shù)讀到數(shù)據(jù),沒到設(shè)定時(shí)鐘值時(shí)就返回了,而你又忘記關(guān)閉報(bào)警時(shí)鐘的話,那么它將在不久后報(bào)警,在計(jì)算機(jī)看來,1秒都是一個(gè)很漫長的時(shí)間,1秒后的報(bào)警可能會造成本進(jìn)程中其他函數(shù)執(zhí)行的中斷,因?yàn)橐粋€(gè)進(jìn)程只有一個(gè)定時(shí)器,所以使用完定時(shí)器后,一定要關(guān)閉定時(shí)器。
實(shí)例代碼:
詳細(xì)代碼
對于C51單片機(jī),其內(nèi)部總共有五級中斷源
分別為外部中斷0、定時(shí)器0、外部中斷1、定時(shí)器1及串行中斷。
C51單片機(jī)的中斷使用時(shí),主要是通過中斷服務(wù)號來決定的。
如你定義一個(gè)中斷服務(wù)函數(shù):
void KEY(void) intterrupt 0
{
}
當(dāng)外部中斷0申請中斷時(shí)
會自動根據(jù)interrupt后面的0,找到上面定義的這個(gè)中斷服務(wù)函數(shù)。
對于其他四個(gè)中斷源,其對應(yīng)的中斷號分別為1、2 、3、4
2秒的應(yīng)該要用定時(shí)器好一點(diǎn)吧,while(!兩秒標(biāo)志)這樣就可以了(兩秒定時(shí)一到,則置位兩秒標(biāo)志位),如果真的對實(shí)時(shí)性要求非常高的話,就是說兩秒一到,不管程序執(zhí)行到哪里,都應(yīng)該結(jié)束這個(gè)循環(huán),那就要用到任務(wù)的調(diào)度了,這個(gè)比較麻煩,因?yàn)闀婕暗讲僮飨到y(tǒng)了,uC/OS可以實(shí)現(xiàn)這個(gè)。至于你說的讓循環(huán)程序執(zhí)行一次就結(jié)束的,既然是只有一次,那就不叫循環(huán)了對吧,不要循環(huán),直接順序執(zhí)行下來就是一次了嘛
網(wǎng)站標(biāo)題:alarmc語言函數(shù) c++ alarm
本文路徑:http://chinadenli.net/article24/dodocje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、ChatGPT、服務(wù)器托管、App設(shè)計(jì)、網(wǎng)站內(nèi)鏈、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)