作者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