|
在arduino 編程中經(jīng)常需要使用delay()使功能延時(shí)一定時(shí)間再執(zhí)行,但是使用delay()后單片機(jī)整個(gè)都在停頓中,干擾了其他動(dòng)作。這時(shí)候創(chuàng)客集結(jié)號(hào)推薦使用millis()來(lái)實(shí)現(xiàn)定時(shí)或者延時(shí)的效果。
unsigned long millis(void);
系統(tǒng)運(yùn)行時(shí)間函數(shù),記錄了單片機(jī)開(kāi)機(jī)運(yùn)行時(shí)間。可以使用一個(gè)變量來(lái)記錄當(dāng)前時(shí)間點(diǎn),然后判斷系統(tǒng)運(yùn)行時(shí)間與記錄的時(shí)間點(diǎn)的差來(lái)實(shí)現(xiàn)延時(shí)的效果。
例如:
unsigned long oldtime=0;
void setup(){
Serial.begin(9600);
}
void loop()
{
if(millis() - oldtime >1000){
oldtime=millis();//更新時(shí)間點(diǎn)
Serial.println("hello world!");
}
}
這樣就能通過(guò)millis()函數(shù)時(shí)間無(wú)阻塞運(yùn)行程序了。若想學(xué)習(xí)更多arduino知識(shí)和教程,可搜索創(chuàng)客集結(jié)號(hào)或xk100com。
|
|