![]() |
發布時間: 2018-8-23 23:57
正文摘要:/************************************************************************************** * ... |
u16就是無符號整型數據,i就是u16就是無符號整型數據,取值范圍0----65535 在此,i還沒有賦值 是否可以這樣理解?各位大師 |
u16就是數據類型:unsigned int ,i就是unsigned int 類型的變量 |
延時函數。u16是無符號整型,這樣傳的數就可以在0-65536范圍內 |
u16是 unsigned int 數據是無符號整形 數值在0`65536. i是下面delay(10000)數值。 意思是主程序執行延時程序時。 i取delay括號的數值進行i減1.直到i=0后結束延時。 |
菜鳥詢問一下,我吧while(i--)改為了while(i++),然后無論怎么改delay()中的值,燈的閃爍頻率不變,但是delay()中不能為0,為0,燈就是常亮。寫入1和寫入100000,LED燈閃爍速度不變。這是為什么?而且編譯時候還不報警。 |
原代碼沒有錯,提問的反到把內容抄錯了,這也間接說明樓主的一些問題 |
延時的作用,。U16 i是定義一個名為i的16位變量,U16應該是unsigned short |
這是在定義一個延時子函數,void表示無返回值,delay再單片機程序中通常代表延時,void開頭,如:void delay(),void SEG等,都是在寫子函數,U16 i是在定義一個變量,U16是unsigned int的重定義,代表你定義的變量占16個字節 |
|
應該是unsigned short |
typedef unsigned int u16; 普通的說就是給typedef unsigned int取個小名叫u16,typedef unsigned int你問我是什么意思,我不知,我也記不住,我查那才知是16位無符號數,如是就用自己理解的無符號16位u16代,以后的程序中都用u16,我能記的,不用記不住的那個typedef unsigned int,我也一樣怕英記。 |
不是(u6i), 而是(u16 i), 注意中間是有空格的。程序前面有定義:typedef unsigned int u16; u16 就是 數據類型 unsigned int 的縮寫,因此函數名void delay(u16 i)表示調用該函數時,需要帶一個16位無符號整型數的參量,不同的參量值決定了不同的延時時間。 |
void delay(u16 i) { while(i--); }這里當I=1時,怎么就是延時10us |
void delay(u16 i) { while(i--); } 實際上是定義一個16位無符號數i,當定義了i的值后,執行i--操作,直至i--=0,跳出循環 |
typedef unsigned char u8 后面也沒有用到啊 |
無符號整型的變量名 |
應該是unsigned short,而不是signed int |
兄弟這是個延時函數 經過上邊定義了u16 u16定義的變量就相當于unsigned int型 這個函數的注釋也說明了 i為1的時候可以延時10us 也就是說根據需要給i賦值可以最多延時10乘2的16次方長度的時間 |
u16 是你需要定義的變量類型啊 |
C基礎要補補了,unsigned int 無符號整型,定義變量i的范圍0-65535.也就是delay()延時函數的最大值。 |
typedef unsigned int u16; 說白是 unsigned int 賦值范圍是0-65535 |
重新定義delay()函數。 |
簡單的來說就是需要重新定義delay延時函數 |
typedef unsigned int u16 的意思是u16等價unsigned int(變量類型的范圍0~65535),顯然100000已經超過unsigned int的范圍了。我建議你看些C語言書籍 數據類型,函數,希望對你有用,謝謝 |
因為主函數(就是main()里面),要用到delay(100000),所以要定義void delay() |
u16 的意思是說延遲的最大數用二進制表示不能超過16位(0XFFFF). |
為什么 u16 與i之間加入逗號就不能運行程序了 |
void delay 是一個無返回值的函數括號里面無符號整形變量,來定義I的變量類型 |
用了typedef unsigned int u16; u16就是unsigned int了, |
你把上面的 typedef unsigned int u16 意思就是 u16 是無符號整形的數 如果你不適應就別用 typedef了 |
typedef unsigned int u16; //對數據類型進行聲明定義 自己定義了一個u16的數據類型 意思相當于 unsigned int 類型 為了簡化代碼 void delay(u16 i) 自己寫的一個延時函數 為了延時當 i = 1 是延時 10us 可以根據自己需要 輸入i的值達到自己想要的延時時間 |
u16是無符號整型的變量名 |
u16 是unsigned int 最大為2的16次方 |
U16是你定義的變量類型,i |
樓主有點萌,還是再補一下C語言知識吧,加油↖(^ω^)↗ |