欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)中斷程序疑問 [打印本頁]

作者: xnysfh    時間: 2023-6-26 09:33
標(biāo)題: 單片機(jī)中斷程序疑問
void InterruptTimer0() interrupt 1
{
TH0 = 0xFC; //重新加載初值
TL0 = 0x67;
cnt++; //中斷次數(shù)計數(shù)值加 1
if (cnt >= 1000) //中斷 1000 次即 1 秒
{
cnt = 0; //清零計數(shù)值以重新開始下 1 秒計時
flag1s = 1; //設(shè)置 1 秒定時標(biāo)志為 1
}
LedScan();
}
問:這里的LedScan();是920us刷新一次嗎?問:為什么fc67習(xí)慣說是1ms?



作者: mtdzok    時間: 2023-6-26 10:19
初值是根據(jù)晶振頻率計算的,首先確定使用多大的晶振,是11.0592還是12M還是......
作者: xnysfh    時間: 2023-6-26 10:33
mtdzok 發(fā)表于 2023-6-26 10:19
初值是根據(jù)晶振頻率計算的,首先確定使用多大的晶振,是11.0592還是12M還是......

11059200

作者: munuc_w    時間: 2023-6-26 10:39
1. 為什么是1ms,自己看書去。
2. 中斷服務(wù)程序應(yīng)該簡潔,追求執(zhí)行時間最短的指導(dǎo)思想,LedScan();最好不要放在這里。
作者: yzwzfyz    時間: 2023-6-26 10:44
【LedScan()】,在【void InterruptTimer0() interrupt 1】中只運(yùn)行了一次。
所以【void InterruptTimer0() interrupt 1】多久運(yùn)行一次,【LedScan()】就多久運(yùn)行一次。
也即取次于你的中斷時常數(shù)設(shè)定。而時基又是晶振頻率。所以你看著辦吧。

作者: lkc8210    時間: 2023-6-26 11:11
說的出920us就代表你懂得TH0 = 0xFC;TL0 = 0x67;的意義
但還差一點(diǎn)的,就是0xFC67加到0x10000溢出的時間計算
0x10000 - 0xFC67 = 921
THTL每加1的時間間隔是基于晶振頻率
12Mhz是1us, 而11.0592Mhz就是12/11.0592 = 1.085us
921 x 1.085 = 999.35 差不多是1ms
作者: xnysfh    時間: 2023-6-26 13:17
lkc8210 發(fā)表于 2023-6-26 11:11
說的出920us就代表你懂得TH0 = 0xFC;TL0 = 0x67;的意義
但還差一點(diǎn)的,就是0xFC67加到0x10000溢出的時間計 ...

參考了6樓的講解,已解決問題,謝謝大家參與討論
作者: real8799190    時間: 2023-7-3 13:45
根據(jù)提供的代碼,可以看出在 Timer0 的中斷函數(shù) InterruptTimer0() 中調(diào)用了函數(shù) LedScan()。由于沒有給出 LedScan() 的具體實(shí)現(xiàn)代碼,無法確定其刷新頻率。因此,無法準(zhǔn)確回答 "LedScan(); 是 920us 刷新一次嗎?" 這個問題。

至于為什么 TH0 = 0xFC 和 TL0 = 0x67 常被稱為 1ms,是因?yàn)檫@是設(shè)置 Timer0 初值的方式,在一些常見的時鐘頻率和定時器設(shè)定下,可能導(dǎo)致定時器每溢出一次需要 1ms 的時間。

具體來說,當(dāng)使用 11.0592MHz 的晶振作為時鐘源,并將定時器 T0 設(shè)置為模式 1(16位定時/計數(shù)模式),以 12 分頻(Prescaler)的方式進(jìn)行計數(shù)時,初值 TH0 = 0xFC,TL0 = 0x67 可以使定時器在溢出前計數(shù)滿 1000 次,而每次計數(shù)需要 1ms。
作者: rayin    時間: 2023-7-5 08:03
中斷服務(wù)函數(shù)里面,不要調(diào)用ledscan這種耗時長的子程序.




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1