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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3564|回復: 26
打印 上一主題 下一主題
收起左側

_nop_()這個函數的括號里寫入什么值

  [復制鏈接]
跳轉到指定樓層
樓主
ID:711481 發表于 2020-3-24 20:02 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
如題
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:452950 發表于 2020-3-24 21:28 | 只看該作者
什么都不用填,只有定義函數時有輸入參數的才要在括號里填
回復

使用道具 舉報

板凳
ID:388929 發表于 2020-3-24 21:29 | 只看該作者
我一直以為這是個空操作符,就是讓單片機白白浪費一個機器周期用的。。。。還能寫入值的嗎???我也坐等答案呢
回復

使用道具 舉報

地板
ID:711481 發表于 2020-3-24 21:53 來自手機 | 只看該作者
billaj 發表于 2020-3-24 21:29
我一直以為這是個空操作符,就是讓單片機白白浪費一個機器周期用的。。。。還能寫入值的嗎???我也坐等答 ...

我初學  不太懂
回復

使用道具 舉報

5#
ID:711481 發表于 2020-3-24 21:54 來自手機 | 只看該作者
xxpp2011 發表于 2020-3-24 21:28
什么都不用填,只有定義函數時有輸入參數的才要在括號里填

單獨把它放在一行上,不用填入參數,就會延遲嗎?
回復

使用道具 舉報

6#
ID:473159 發表于 2020-3-24 22:16 | 只看該作者
_nop_()本身是一個操作為空的函數(不執行具體事情的函數(括號類也是空)),作用就是白白浪費單片機周期時間,起到簡短延時效果
回復

使用道具 舉報

7#
ID:388135 發表于 2020-3-24 22:41 | 只看該作者
nop后面有括號嗎?
回復

使用道具 舉報

8#
ID:481073 發表于 2020-3-25 07:56 | 只看該作者
就是一個周期,就有的時候你要做很精確的延時的時候很多單片機自己延時函數做不到,一般us級別的,就要用到這個函數,可以仿真測下時間,然后決定用幾個
回復

使用道具 舉報

9#
ID:592807 發表于 2020-3-25 08:29 | 只看該作者
空白操作,不寫值
回復

使用道具 舉報

10#
ID:685726 發表于 2020-3-25 16:56 | 只看該作者
不用填,這個是空操作符,延時函數里面的指令,相當于延時一個機器周期。
回復

使用道具 舉報

11#
ID:426861 發表于 2020-3-25 17:07 | 只看該作者
不要填任何值
回復

使用道具 舉報

12#
ID:697917 發表于 2020-3-25 17:28 | 只看該作者
nothing,就是一個空指令,會占用一個機器周期,匯編中為了防止程序跑飛也會對此調用該指令,防止程序死掉。
回復

使用道具 舉報

13#
ID:517951 發表于 2024-10-10 07:59 | 只看該作者
_nop_(); 是空轉指令, 主要用于非常短暫的延時. 不需要參數.
回復

使用道具 舉報

14#
ID:466250 發表于 2024-10-10 21:52 | 只看該作者
本帖最后由 藍藍小星星 于 2024-10-11 00:17 編輯

_nop_();的由來是宏定義

#define _nop_()  asm"nop"
回復

使用道具 舉報

15#
ID:155507 發表于 2024-10-11 13:50 | 只看該作者

_nop_();的由來是宏定義

函數原型

#define           _nop_()        __asm { nop }

/////////////////////////////////////////////////
#define NOP1()  _nop_()
#define NOP2()  NOP1(),NOP1()
#define NOP3()  NOP2(),NOP1()
#define NOP4()  NOP3(),NOP1()
#define NOP5()  NOP4(),NOP1()
#define NOP6()  NOP5(),NOP1()
#define NOP7()  NOP6(),NOP1()
#define NOP8()  NOP7(),NOP1()
#define NOP9()  NOP8(),NOP1()
#define NOP10() NOP9(),NOP1()
#define NOP11() NOP10(),NOP1()
#define NOP12() NOP11(),NOP1()
#define NOP13() NOP12(),NOP1()
#define NOP14() NOP13(),NOP1()
#define NOP15() NOP14(),NOP1()
#define NOP16() NOP15(),NOP1()
#define NOP17() NOP16(),NOP1()
#define NOP18() NOP17(),NOP1()
#define NOP19() NOP18(),NOP1()
#define NOP20() NOP19(),NOP1()
#define NOP21() NOP20(),NOP1()
#define NOP22() NOP21(),NOP1()
#define NOP23() NOP22(),NOP1()
#define NOP24() NOP23(),NOP1()
#define NOP25() NOP24(),NOP1()
#define NOP26() NOP25(),NOP1()
#define NOP27() NOP26(),NOP1()
#define NOP28() NOP27(),NOP1()
#define NOP29() NOP28(),NOP1()
#define NOP30() NOP29(),NOP1()
#define NOP31() NOP30(),NOP1()
#define NOP32() NOP31(),NOP1()
#define NOP33() NOP32(),NOP1()
#define NOP34() NOP33(),NOP1()
#define NOP35() NOP34(),NOP1()
#define NOP36() NOP35(),NOP1()
#define NOP37() NOP36(),NOP1()
#define NOP38() NOP37(),NOP1()
#define NOP39() NOP38(),NOP1()
#define NOP40() NOP39(),NOP1()
#define NOP(N)  NOP##N()


/////////////////////////////////////////////////

回復

使用道具 舉報

16#
ID:624769 發表于 2024-10-11 20:45 | 只看該作者
_nop_()  根本不是來自宏定義!! 來自于 系統函數庫!
你只需要使用
extern void          _nop_     (void);
來申明就能直接調用, 而不需要 勞神子 的 define
根據這個函數模型可以看出, 這是一個不傳參的 函數。
回復

使用道具 舉報

17#
ID:466250 發表于 2024-10-11 23:25 | 只看該作者
188610329 發表于 2024-10-11 20:45
_nop_()  根本不是來自宏定義!! 來自于 系統函數庫!
你只需要使用
extern void          _nop_     (voi ...

使用函數傳遞空指令會發生LCALL跳轉,而不是匯編NOP指令,所謂的庫函數,就是系統封裝好的指令。
部分編譯器能看到NOP()被宏定義,部分編譯器可能看不到。
通過宏定義還可以重定義自己喜好的寫法。
回復

使用道具 舉報

18#
ID:624769 發表于 2024-10-17 23:53 | 只看該作者
藍藍小星星 發表于 2024-10-11 23:25
使用函數傳遞空指令會發生LCALL跳轉,而不是匯編NOP指令,所謂的庫函數,就是系統封裝好的指令。
部分編 ...

你用過么? 你能不想當然的 認為 有LCALL 而實際 編譯一下看看么?
回復

使用道具 舉報

19#
ID:466250 發表于 2024-10-18 00:09 | 只看該作者
188610329 發表于 2024-10-17 23:53
你用過么? 你能不想當然的 認為 有LCALL 而實際 編譯一下看看么?



現在用過了,直接無法編譯。
回復

使用道具 舉報

20#
ID:624769 發表于 2024-10-18 14:14 | 只看該作者
藍藍小星星 發表于 2024-10-18 00:09
現在用過了,直接無法編譯。

你這 多打一個 _ 以為大家看不見么? 不要自欺欺人好吧?
回復

使用道具 舉報

21#
ID:466250 發表于 2024-10-20 04:02 | 只看該作者
188610329 發表于 2024-10-18 14:14
你這 多打一個 _ 以為大家看不見么? 不要自欺欺人好吧?




刪除所有代碼,只寫2行足以測試,別總以為別人是傻子,你倒是來解釋解釋為什么不能通過編譯。
至于為什么會多出來_,是因為按你的寫法只聲明了函數,但沒有書寫函數所以警告,編譯器直接在出錯函數前面加上_符號而已。
回復

使用道具 舉報

22#
ID:466250 發表于 2024-10-20 04:05 | 只看該作者
188610329 發表于 2024-10-18 14:14
你這 多打一個 _ 以為大家看不見么? 不要自欺欺人好吧?




按正常書寫方法,可通過編譯,并產生了CALL指令,并非NOP指令。
回復

使用道具 舉報

23#
ID:624769 發表于 2024-10-20 21:07 | 只看該作者
藍藍小星星 發表于 2024-10-20 04:05
按正常書寫方法,可通過編譯,并產生了CALL指令,并非NOP指令。

正常的書寫方式,應該是這樣:

編譯后不會有任何錯誤。

Ctrl+F5 查看匯編指令后,也是一個空指令NOP。


嘴上說著別以為別人都是傻子,但是你卻總以為別人都是傻子。
都說了這是系統函數庫的東西了,你去KEIL 的 HELP 里面都能搜到這個指令,壓根不需要什么自作聰明的 define, 只要一個extern 就能調用,你如果調用不了,就是你系統函數庫出了問題!

回復

使用道具 舉報

24#
ID:466250 發表于 2024-10-21 00:10 | 只看該作者
188610329 發表于 2024-10-20 21:07
正常的書寫方式,應該是這樣:

編譯后不會有任何錯誤。

不是所有的編譯器都支持這種寫法,這是keil的寫法,你找其他的編譯器看看能支持?
按標準寫法,肯定會成成call指令,如果是替換為nop只能說明這是編譯器的關鍵字。
define的寫法在一些編譯器的未加密的庫函數可以看到封裝后的寫法,但如果這時用keil就會報錯。而define這種寫法的通用性還可以用在keil上。
回復

使用道具 舉報

25#
ID:592807 發表于 2024-10-21 08:18 | 只看該作者

你可以理解成void _nop_(void){;}這是個什么都不做就浪費單片機時間的函數就行了
回復

使用道具 舉報

26#
ID:1133676 發表于 2024-10-26 13:26 | 只看該作者
不用填
回復

使用道具 舉報

27#
ID:1134816 發表于 2024-10-27 18:36 | 只看該作者
什么都不寫,本來就是個空指令
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久在线观看 | 免费色网址 | 91精品国产综合久久久久久首页 | 久久丝袜 | 久久亚洲精品视频 | 中文字幕精品一区二区三区精品 | 久久精品在线免费视频 | 久久机热 | 一区二区三区四区在线免费观看 | 天天干天天想 | 天堂在线www | 欧美性一区二区三区 | 偷拍自拍网站 | 人人精品 | 国产精品久久久久久一级毛片 | 亚洲精品一区二区 | 狠狠久 | 久久久久国产精品 | 精品九九 | 亚洲三区在线观看 | 一区二区三区在线播放 | 久久久夜色精品亚洲 | 美女国产精品 | 日产精品久久久一区二区福利 | 国产高清视频 | 97人人澡人人爽91综合色 | 日韩电影一区二区三区 | 亚洲精品在线免费观看视频 | 精品91久久久| 精品欧美色视频网站在线观看 | 91精品国产91久久久久久吃药 | 欧美一区成人 | 操操日| 95国产精品 | 久久精品av麻豆的观看方式 | 国产成人免费视频网站高清观看视频 | 免费一级片 | 国产成人精品一区二区三区 | 日韩色视频 | 天天操夜夜爽 | 亚洲三级免费看 |