Re: 程式的寫法---位元組合成字元
|
||||
---|---|---|---|---|
初級會員
|
非常感謝版主和C_H_M的想法~
發表於: 2008/3/6 8:28
|
|||
數位地球人
|
||||
|
Re: 程式的寫法---位元組合成字元
|
||||
---|---|---|---|---|
版主
|
不同的 PORT 很難做到。
同意 C_H_M 的作法,加一票。
發表於: 2008/3/5 16:25
|
|||
|
Re: 程式的寫法---位元組合成字元
|
||||
---|---|---|---|---|
中級會員
|
你好 !
我個人覺得, 要能完全符合你如此敘述的做法實在是難以實現. 你所期望的結果應是無法用單一個結構的方法來實現的, 建議你改使用函式的方法來達到你所希望的結果. (因為硬體已經是成品呈現在那裡了.) (而且其中的輸出並不包含可選擇輸出來源的選擇器線路在.) 以函式的方式來達成這樣的結果如下:
#define Sel0 LATBbits.LATB1
發表於: 2008/3/5 14:34
|
|||
|
Re: 程式的寫法---位元組合成字元
|
||||
---|---|---|---|---|
初級會員
|
經過一陣子的思考,了解了結構的用法,我還是想不通該有的寫法,容我再描述一次需求,請高手指點。
令三個不同或相同埠(port)PIO做Output,例如RB1、RC2、RD3。 我可以各別定義 #define Sel0 LATBbits.LATB1 #define Sel1 LATCbits.LATC2 #define Sel2 LATDbits.LATD3 然後針對任一output輸出Hi或Lo Sel0=1; //RB1為Hi輸出 Sel1=0; //RC2為Lo輸出 但是如果我想要定義這三個Output是有相關的, 例如某個變數Var為2,則此時 RB1=0;RC2=1;RD3=0;該怎樣定義此變數Var呢? 結構我看過了,它可以針對結構變數的某一bit做設定 Var.bit0=0;這個我了解 但是跟怎樣定義,才能將結構變數裡的單一bit指派為RBx呢? 謝謝~
發表於: 2008/3/5 13:54
|
|||
數位地球人
|
||||
|
Re: 程式的寫法---位元組合成字元
|
||||
---|---|---|---|---|
初級會員
|
好的,我會往這方面來思考。
發表於: 2008/2/23 9:54
|
|||
數位地球人
|
||||
|
Re: 程式的寫法---位元組合成字元
|
||||
---|---|---|---|---|
版主
|
可以用位元結構的方式去定義,可以參考 元件的H檔案格式,有很多的周邊都是用幾個位元合並成一個結構變數的。
請參考 SR Register<IPL2:IPL0> 的宣告或IPC0 暫存器裡對三個位元的IP宣告。
p30f4011.h
寫法: IPCbits.T1IP=7; //將Timer1 的中斷優先權設為 7
發表於: 2008/2/22 16:59
|
|||
|
程式的寫法---位元組合成字元
|
||||
---|---|---|---|---|
初級會員
|
各位好
我目前在使用C30 Compiler,有一個語法或技巧不清楚該怎麼做會比較好,請有經驗的人指點,謝謝。 定義 #define Sel0 LATBbits.LATB0 #define Sel1 LATBbits.LATB3 #define Sel2 LATBbits.LATB8 其中PortB的第0、3、8是輸出,而Sel0、Sel1、Sel2是我給它定的名字。 Sel0是我要的第0個位元,Sel1是第1個位元,Sel2是第2個位元 如果要輸出“3”,則要寫成 Sel0 = 1; Sel1 = 1; Sel2 = 0; 這樣程式讀起來會較不順,而且要花3行。 可不可以有一種寫法,可以寫成 Select = 3; 就可以完成?謝謝
發表於: 2008/2/22 16:48
|
|||
數位地球人
|
||||
|