本人写了一个关于12位A/D转换芯片,TLC2543与ARM7芯片的接口程序,写入芯片的子函数已经调试通过,还有读取的函数一时无法调试完成,还望高手指点!谢谢!<br />void SPI_Write(unsigned char _data){<br /> uint8 i; <br /> <br /> IO0SET =IO0PIN|SPI_CS;<br /> DelayNS(2);<br /> IO0CLR=IO0PIN|SPI_CS;<br /> <br /> for (i=0;i<=7;i++){ <br /> if(_data&0x80){<br /> IO0CLR=IO0PIN|SCK;<br /> <br /> IO0SET=IO0PIN|SDO;<br /> DelayNS(2);<br /> IO0SET=IO0PIN|SCK;<br /> DelayNS(2);<br /> }<br /> else{<br /> <br /> IO0CLR=IO0PIN|SCK; <br /> <br /> IO0CLR=IO0PIN|SDO;<br /> DelayNS(2);<br /> IO0SET=IO0PIN|SCK;<br /> DelayNS(2);<br /> }<br /> _data<<=1;<br /> <br /> } <br /> IO0SET=IO0PIN|SPI_CS;<br />}<br /><br />uint8 SPI_Read(void){ <br /> uint8 uwd_voltage = 0;<br /> uint8 i;<br /> <br /> IO0SET =IO0PIN|SPI_CS;<br /> DelayNS(1);<br /> IO0CLR=IO0PIN|SPI_CS;<br /> DelayNS(1);<br /> <br /> for (i=0;i<=7;i++){ <br /> <br /> IO0SET=IO0PIN|SCK; <br /> DelayNS(1); <br /> <br /> if (IO0PIN&SDI){ <br /> uwd_voltage|=0x80;<br /> //uwd_voltage &=0x80;<br /> }<br /> else{<br /> uwd_voltage>>=1;<br /> }<br /> IO0CLR=IO0PIN|SCK;<br /> DelayNS(1); <br /> } <br /><br /> IO0SET=IO0PIN|SPI_CS; <br /> DelayNS(2);<br /><br /> return uwd_voltage; <br />}<br /> |
|