久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)開中斷問題,把EA=1放在主程序中?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:100982 發(fā)表于 2021-10-9 09:52 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
看別人寫的程序,總是喜歡把EA = 1放在主程序中,我個人理解這樣的話是開多個中斷,防止忘記,同時也省的重復(fù)打開。是不是這樣啊?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:624769 發(fā)表于 2021-10-9 13:06 | 只看該作者
只要有中斷,EA總要開的,就算不是放主程序,也是放在只調(diào)用一次的子函數(shù)里,所以……,有什么區(qū)別?而只調(diào)用一次的子函數(shù),除了代碼看起來好看點(所謂的可讀性高一點),在實際應(yīng)用上沒有任何好處。

最后,反復(fù) EA = 1; 除了浪費一點資源,對程序不會有任何影響,所以不必刻意回避多次EA = 1;的情況發(fā)生。
回復(fù)

使用道具 舉報

板凳
ID:100982 發(fā)表于 2021-10-9 13:09 | 只看該作者
188610329 發(fā)表于 2021-10-9 13:06
只要有中斷,EA總要開的,就算不是放主程序,也是放在只調(diào)用一次的子函數(shù)里,所以……,有什么區(qū)別?而只調(diào) ...

這樣啊,可能只是為了程序看上去簡潔邏輯性更強(qiáng)吧
回復(fù)

使用道具 舉報

地板
ID:722595 發(fā)表于 2021-10-9 13:25 | 只看該作者
EA只是個總開關(guān),既然要用到中斷就先把總開關(guān)打開,后面看需求再打開對應(yīng)定時器中斷的開關(guān),好像沒什么問題吧
回復(fù)

使用道具 舉報

5#
ID:960157 發(fā)表于 2021-10-9 13:27 | 只看該作者
EA放在主程序是正路,匯編,C我都是這樣做的。
回復(fù)

使用道具 舉報

6#
ID:57657 發(fā)表于 2021-10-9 13:31 | 只看該作者
不管是什么定時器、外部、串口等中斷,必須打開EA才可以觸發(fā)。
回復(fù)

使用道具 舉報

7#
ID:624769 發(fā)表于 2021-10-9 13:59 | 只看該作者
wifen 發(fā)表于 2021-10-9 13:09
這樣啊,可能只是為了程序看上去簡潔邏輯性更強(qiáng)吧


只是看上去,真正為了程序簡潔的話,我一般連EA = 1都不會用,直接是IE = ??
看有些人 一個寄存器 反復(fù)的 &=   |= 的,看得腦殼疼,關(guān)鍵是,一個寄存器,在這個初始化子函數(shù)里操作一下,那個初始化子函數(shù)操作一下,看上去好像邏輯很清晰,每個功能的初始化分門別類,但是,宏觀上看起來就會很累,所以我一般主程序里所有寄存器統(tǒng)一設(shè)置。

如下:



別人怎么看,我不知道,至少事隔多年,回頭自己看自己的程序,While(1) 前面的一掃,基本知道自己的程序要用哪些功能,是不是方便移植到另一款單片機(jī),一目了然。

Maincode.png (46.93 KB, 下載次數(shù): 113)

Maincode.png
回復(fù)

使用道具 舉報

8#
ID:123289 發(fā)表于 2021-10-9 14:01 | 只看該作者
你家有用電器若干,但總閘只有一個。
EA是CPU中,中斷的總閘。上電時,這個總閘是打開的,未閉合。
明白這個道理,就應(yīng)知道在何合閘拉閘比較合適了。
例如:
白天,只有電飯鍋在用電,飯好了,切斷電飯鍋電源就可以了,總不至于要拉總閘吧。
一張燈壞了,修燈,為了安全,把總閘拉了,是合理的吧。當(dāng)然只切斷燈的電路,也可以。不過萬一……,,這時就是安全第一了。
所以:根據(jù)需要,只要你認(rèn)為是合理的,放哪里無所謂。
一般初化的最末一件事,就是開中斷總閘。
如果某段程序?qū)r序要求很高,不宜被中斷干擾打斷時,就切斷EA,程序結(jié)束后恢復(fù)EA。當(dāng)然這樣做是有風(fēng)險的。
回復(fù)

使用道具 舉報

9#
ID:790408 發(fā)表于 2021-10-9 14:11 | 只看該作者
只是個人寫代碼的習(xí)慣吧
回復(fù)

使用道具 舉報

10#
ID:100982 發(fā)表于 2021-10-9 16:22 | 只看該作者
188610329 發(fā)表于 2021-10-9 13:59
只是看上去,真正為了程序簡潔的話,我一般連EA = 1都不會用,直接是IE = ??
看有些人 一個寄存器 反 ...

這個不錯,很清晰
回復(fù)

使用道具 舉報

11#
ID:23640 發(fā)表于 2021-10-9 16:44 | 只看該作者
188610329 發(fā)表于 2021-10-9 13:59
只是看上去,真正為了程序簡潔的話,我一般連EA = 1都不會用,直接是IE = ??
看有些人 一個寄存器 反 ...

獨立成模塊控制的好處是方便維護(hù)和下一任程序員修改,當(dāng)然如果你的程序只用這一次就不用考慮模塊化了,分多個子函數(shù)是要浪費點時間的。
回復(fù)

使用道具 舉報

12#
ID:57657 發(fā)表于 2021-10-9 21:00 | 只看該作者
188610329 發(fā)表于 2021-10-9 13:59
只是看上去,真正為了程序簡潔的話,我一般連EA = 1都不會用,直接是IE = ??
看有些人 一個寄存器 反 ...

IE是字節(jié)寄存器,可以位尋址,
EA是IE寄存器里的一個位寄存器。
回復(fù)

使用道具 舉報

13#
ID:624769 發(fā)表于 2021-10-9 21:18 | 只看該作者
npn 發(fā)表于 2021-10-9 21:00
IE是字節(jié)寄存器,可以位尋址,
EA是IE寄存器里的一個位寄存器。

就簡潔而言……

EX0 = 1;
EX1 = 1;
ET0 = 1;
ET1 = 1;
EA  = 1;
遠(yuǎn)不如,
IE = 0x8f;  來的簡潔。
而要做到簡潔加直觀的話……
IE = B_1000_1111;   就能達(dá)到要求了。
回復(fù)

使用道具 舉報

14#
ID:401564 發(fā)表于 2021-10-9 23:24 | 只看該作者
EA是總開關(guān),肯定是要放在一個顯眼的地方呀
你要是放在別的函數(shù)中,要是剛開始寫代碼的時候,忘記打開了,到時候中斷問是無法進(jìn)入,你都不知道怎么回事
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲黄色一级毛片 | 欧美一区二区三区 | 黄色精品| 精品美女视频在线观看免费软件 | 国产一区二 | 欧美 日韩 中文 | 日日夜夜精品免费视频 | 亚洲精品美女 | 免费黄色片在线观看 | 精品国产一区二区三区在线观看 | 黄色在线免费观看视频网站 | 日本不卡免费新一二三区 | 秋霞电影院午夜伦 | 成人福利电影 | 欧美啊v在线观看 | 毛片在线免费 | 91久久久久久| 不卡一区 | 99成人精品 | 欧美五月婷婷 | h片在线播放| 超碰人人做 | 成人视屏在线观看 | 欧洲亚洲视频 | 日韩中文字幕 | 请别相信他免费喜剧电影在线观看 | 精品久久久一区 | 亚洲电影一区二区三区 | 亚洲精品在线播放 | 欧美aⅴ在线观看 | 国内精品99| 午夜精品福利视频 | www国产精 | h片免费在线观看 | 草逼网站 | 视频在线日韩 | 欧美中文字幕一区 | 九九热在线视频免费观看 | 国产精品一区在线观看你懂的 | 毛片网站在线观看 | 国产良家自拍 |