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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3480|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)中斷程序疑問

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 10 黑幣 回復(fù)本帖可獲得 10 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:1079270 發(fā)表于 2023-6-26 09:33 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
void InterruptTimer0() interrupt 1
{
TH0 = 0xFC; //重新加載初值
TL0 = 0x67;
cnt++; //中斷次數(shù)計(jì)數(shù)值加 1
if (cnt >= 1000) //中斷 1000 次即 1 秒
{
cnt = 0; //清零計(jì)數(shù)值以重新開始下 1 秒計(jì)時(shí)
flag1s = 1; //設(shè)置 1 秒定時(shí)標(biāo)志為 1
}
LedScan();
}
問:這里的LedScan();是920us刷新一次嗎?問:為什么fc67習(xí)慣說是1ms?


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:884147 發(fā)表于 2023-6-26 10:19 | 只看該作者
初值是根據(jù)晶振頻率計(jì)算的,首先確定使用多大的晶振,是11.0592還是12M還是......
回復(fù)

使用道具 舉報(bào)

板凳
ID:1079270 發(fā)表于 2023-6-26 10:33 | 只看該作者
mtdzok 發(fā)表于 2023-6-26 10:19
初值是根據(jù)晶振頻率計(jì)算的,首先確定使用多大的晶振,是11.0592還是12M還是......

11059200
回復(fù)

使用道具 舉報(bào)

地板
ID:752974 發(fā)表于 2023-6-26 10:39 | 只看該作者
1. 為什么是1ms,自己看書去。
2. 中斷服務(wù)程序應(yīng)該簡潔,追求執(zhí)行時(shí)間最短的指導(dǎo)思想,LedScan();最好不要放在這里。
回復(fù)

使用道具 舉報(bào)

5#
ID:123289 發(fā)表于 2023-6-26 10:44 | 只看該作者
【LedScan()】,在【void InterruptTimer0() interrupt 1】中只運(yùn)行了一次。
所以【void InterruptTimer0() interrupt 1】多久運(yùn)行一次,【LedScan()】就多久運(yùn)行一次。
也即取次于你的中斷時(shí)常數(shù)設(shè)定。而時(shí)基又是晶振頻率。所以你看著辦吧。
回復(fù)

使用道具 舉報(bào)

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

評(píng)分

參與人數(shù) 1黑幣 +10 收起 理由
xnysfh + 10 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

7#
ID:1079270 發(fā)表于 2023-6-26 13:17 | 只看該作者
lkc8210 發(fā)表于 2023-6-26 11:11
說的出920us就代表你懂得TH0 = 0xFC;TL0 = 0x67;的意義
但還差一點(diǎn)的,就是0xFC67加到0x10000溢出的時(shí)間計(jì) ...

參考了6樓的講解,已解決問題,謝謝大家參與討論
回復(fù)

使用道具 舉報(bào)

8#
ID:1053359 發(fā)表于 2023-7-3 13:45 | 只看該作者
根據(jù)提供的代碼,可以看出在 Timer0 的中斷函數(shù) InterruptTimer0() 中調(diào)用了函數(shù) LedScan()。由于沒有給出 LedScan() 的具體實(shí)現(xiàn)代碼,無法確定其刷新頻率。因此,無法準(zhǔn)確回答 "LedScan(); 是 920us 刷新一次嗎?" 這個(gè)問題。

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

具體來說,當(dāng)使用 11.0592MHz 的晶振作為時(shí)鐘源,并將定時(shí)器 T0 設(shè)置為模式 1(16位定時(shí)/計(jì)數(shù)模式),以 12 分頻(Prescaler)的方式進(jìn)行計(jì)數(shù)時(shí),初值 TH0 = 0xFC,TL0 = 0x67 可以使定時(shí)器在溢出前計(jì)數(shù)滿 1000 次,而每次計(jì)數(shù)需要 1ms。
回復(fù)

使用道具 舉報(bào)

9#
ID:517951 發(fā)表于 2023-7-5 08:03 | 只看該作者
中斷服務(wù)函數(shù)里面,不要調(diào)用ledscan這種耗時(shí)長的子程序.
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表