[問題] PORT腳一直變更~要如何定義(C)

看板ASM (組合語言)作者 (小D(滴))時間13年前 (2011/11/08 11:39), 編輯推噓5(508)
留言13則, 3人參與, 最新討論串1/2 (看更多)
用i2c寫sda和scl 今天用一堆ic要被控制~SCL全部都為同一隻. 但sda會從p0.0~ p2.7 (共24 pin) 又因不變動SDA動作的程式~~ 如 =============================== void main(void) { while(1) { //該如何定義~才可以讓我的pSDA隨我所定義的port動作? I2cStart(); } } void I2cStart(void) { pSDA=1; pSCL=1; I2cWait( ); pSDA=0; I2cWait( ); pSCL=0; I2cWait( ); } ============================ 我想執行pSDA前~是會是我所定義的port腳~請問該如何定義呢?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.63.7.65

11/08 14:27, , 1F
用 #define pSDA p1.0
11/08 14:27, 1F

11/08 14:30, , 2F
他電路的接法用這樣應該不行,他需要的是使用多I2C並聯
11/08 14:30, 2F

11/08 14:30, , 3F
操控的方式(奇怪,為甚麼不用ADDR跟CS腳?)
11/08 14:30, 3F

11/08 14:33, , 4F
原來是多SDA啊... 那不能用 #define 沒錯...
11/08 14:33, 4F

11/08 14:42, , 5F
因為被控制的ic~他的ADDR只有三態選擇~但卻需要60顆IC~
11/08 14:42, 5F

11/08 14:44, , 6F
有試過SBIT和#DEFINE 但卻都不行...
11/08 14:44, 6F

11/08 14:54, , 7F
是記憶體嗎?可以試看看用CS腳搭配4顆74HC154
11/08 14:54, 7F

11/08 14:59, , 8F
不是紀憶體~是亮度感測器~又因為要一顆MCU做多顆~
11/08 14:59, 8F

11/08 15:00, , 9F
所以才想用一隻SCL~多隻SDA做控制~
11/08 15:00, 9F

11/08 15:05, , 10F
這樣你的掃描速度會夠嗎?
11/08 15:05, 10F

11/08 15:07, , 11F
要速度我會跟你一樣的接法,但是程式不是這樣寫的
11/08 15:07, 11F

11/08 15:50, , 12F
速度上目前沒有很大要求~1秒內能讀完全部就可以~~
11/08 15:50, 12F

11/08 15:58, , 13F
那,還是用DECODER串起來一次讀寫一個比較簡單啦
11/08 15:58, 13F
文章代碼(AID): #1EkAHqVd (ASM)
文章代碼(AID): #1EkAHqVd (ASM)