打算仿照別人的單片機庫寫一個自己的51單片機庫,但sbit這種型別的怎么做形參,網上看的又說的將值賦給int型的變數就行,但怎么也都不成功,有大佬知道怎么解決嗎?
uj5u.com熱心網友回復:
可以嘗試用 bit 做形參型別uj5u.com熱心網友回復:
剛接觸不是很理解,你們把關鍵位置的代碼發一下嗎
uj5u.com熱心網友回復:
就是寫個.h檔案,有2種方式,1直接在h檔案寫所有代碼,我喜歡這種方式,2關聯c檔案在c檔案中寫所有代碼。uj5u.com熱心網友回復:
bit只能一位,能詳細說說怎么操作嗎?
uj5u.com熱心網友回復:
你先寫出你要做成什么樣子吧,sbit 本來就是位,bit只能一位有什么問題?
在我印象中,只有引腳位和 bdata 變數里的位有用到 sbit,這不都是一個位嗎?
uj5u.com熱心網友回復:
可以嘗試用 bit 做形參型別
bit只能一位,能詳細說說怎么操作嗎?
你先寫出你要做成什么樣子吧,sbit 本來就是位,bit只能一位有什么問題?
在我印象中,只有引腳位和 bdata 變數里的位有用到 sbit,這不都是一個位嗎?
寫一個子函式
void led(sbit p)
{}
呼叫時候直接
sbit P=P0^0;
led(P);
uj5u.com熱心網友回復:
可以嘗試用 bit 做形參型別
bit只能一位,能詳細說說怎么操作嗎?
你先寫出你要做成什么樣子吧,sbit 本來就是位,bit只能一位有什么問題?
在我印象中,只有引腳位和 bdata 變數里的位有用到 sbit,這不都是一個位嗎?
寫一個子函式
void led(sbit p)
{}
呼叫時候直接
sbit P=P0^0;
led(P);
sbit P=P0^0; 這種寫法只能在 函式外,也就是全域變數,如果是區域變數,應該這樣寫: bit P=P0^0;
子函式這樣寫就可以了
void led(bit p)
{}
uj5u.com熱心網友回復:

還是不行
uj5u.com熱心網友回復:
你要的是改變P1.1的狀態,用全域的 sbit p=P1.1是可以的。另外不要取p這種變數名P1.1本來就是全域的,頭檔案里有 sbit P11 = P1^1; 你直接拿 P11來用就好了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/104217.html
標籤:單片機/工控
