|
各位師傅,您們好,我想用一個(gè)單片機(jī)中斷設(shè)置四個(gè)時(shí)間倒計(jì)時(shí),現(xiàn)在我只能用類似延時(shí)的方法實(shí)現(xiàn),我到有師傅說可以用用一個(gè)定時(shí)器中斷做時(shí)基,有幾路倒計(jì)時(shí)就用幾個(gè)倒計(jì)時(shí)單元,分別置初值,在定時(shí)器中斷程序內(nèi)對(duì)各個(gè)計(jì)時(shí)單元減1,主程序只要不斷查詢各個(gè)計(jì)數(shù)單元,哪一個(gè)歸零了,就是哪一路倒計(jì)時(shí)結(jié)束了。不知道怎樣寫,希望懂的師傅們給點(diǎn)樣品代碼,非常感謝。
我現(xiàn)在用的延時(shí)方法:
void ISR_INT2(void) interrupt 12
{
static ulong nn;
T2L = 0x20; //設(shè)置定時(shí)初值
T2H = 0xD1; //設(shè)置定時(shí)初值
nn++; //自加 臨時(shí)計(jì)數(shù)器01
if(nn==1000) //如果 臨時(shí)計(jì)數(shù)器01達(dá)到設(shè)定值(1ms轉(zhuǎn)1s)
{ nn=0; //清零 臨時(shí)計(jì)數(shù)器01
numrelays++; //自加 計(jì)數(shù)器relay
}
}
這樣就是秒的中斷,把這個(gè)秒設(shè)置成一個(gè)延時(shí)函數(shù),就可以調(diào)用四個(gè)不同的時(shí)間了,我想看看師傅們?cè)鯓佑弥袛鄿p操作的方法,非常感謝。
|
|