首先我想用它做数字电位器。用的是430F169,硬件I2C。根据芯片手册,可以写进去。但是为什么阻值达不到100k。最大只有20k.
我把VSS接的地。经过过两天的挣扎,后来把LA或HA接地,阻值到了100K。输入值可以相应变化,可是为什么,我用万用板表笔正着测时是个阻值,表笔反过来测时是另外一个阻值。好奇怪!本来想忽略这问题,但是把芯片接到自己的应用电路中时,就没用了。。郁闷中。。。。
今天又看了下手册,不知道ACR寄存器怎么用的,它的寄存器地址和WRA地址一样,怎么写?
void i2c_write(unsigned char add,unsigned char data1)
{
I2CNDAT = 0x02; //发送两个字节
U0CTL |= MST; //设置为主机
I2CTCTL |= I2CSTT + I2CSTP + I2CTRX; //开启发送为,停止位,起始位
while((I2CIFG & TXRDYIFG)==0); //等待发送
I2CDRB = add; //发送空间地址
while((I2CIFG & TXRDYIFG)==0);
I2CDRB = data1; //发送数据
while((I2CTCTL & I2CSTP)==0X02);
}