作者fmdjyl (小D(滴))
看板ASM
標題[問題] PORT腳一直變更~要如何定義(C)
時間Tue Nov 8 11:39:30 2011
用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
1F:推 ksmrt0123:用 #define pSDA p1.0 11/08 14:27
2F:推 WolfLord:他電路的接法用這樣應該不行,他需要的是使用多I2C並聯 11/08 14:30
3F:→ WolfLord:操控的方式(奇怪,為甚麼不用ADDR跟CS腳?) 11/08 14:30
4F:推 ksmrt0123:原來是多SDA啊... 那不能用 #define 沒錯... 11/08 14:33
5F:→ fmdjyl:因為被控制的ic~他的ADDR只有三態選擇~但卻需要60顆IC~ 11/08 14:42
6F:→ fmdjyl:有試過SBIT和#DEFINE 但卻都不行... 11/08 14:44
7F:→ WolfLord:是記憶體嗎?可以試看看用CS腳搭配4顆74HC154 11/08 14:54
8F:→ fmdjyl:不是紀憶體~是亮度感測器~又因為要一顆MCU做多顆~ 11/08 14:59
9F:→ fmdjyl:所以才想用一隻SCL~多隻SDA做控制~ 11/08 15:00
10F:推 WolfLord:這樣你的掃描速度會夠嗎? 11/08 15:05
11F:→ WolfLord:要速度我會跟你一樣的接法,但是程式不是這樣寫的 11/08 15:07
12F:→ fmdjyl:速度上目前沒有很大要求~1秒內能讀完全部就可以~~ 11/08 15:50
13F:推 WolfLord:那,還是用DECODER串起來一次讀寫一個比較簡單啦 11/08 15:58