对ADS8341写过控制字以后是不是ADS8341就直接开始连续AD转换了,并且不断向DSP发送转换结果,DSP接收以后如何区分是哪个通道的采样结果啊? DSP是否可以在需要的时候再读AD转换结果。
你好,ADS8344是一个ADC转换器,8路输入,8位串行控制输入,16位串行数据输出。下面是写的程序,粘到记事本里看,百度上显得乱。
/* ADS8344 */
#define uchar unsigned char
#define uword unsigned int
sbit ADS_SHDN =
sbit ADS_CS =
sbit ADS_DCLK =
sbit ADS_DIN =
sbit ADS_BUSY =
sbit ADS_DOUT =
// (MSB) (LSB)
// BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
// SA2 A1 A0 —SGL/DIF PD1 PD0
void ads_com(uchar ads_comchar)
{
uchar i=0
for (i=8i>0i--)
{
ADS_DIN = ads_comchar&0x80//取最高位
ADS_DCLK = 0
ADS_DCLK = 1
ads_comchar<<=1//左移数据
}
}
// (MSB)(LSB)
// BIT15 ...... BIT0
uword ads_dat(void)
{
uword ads_datword = 0
uchar i=0
for (i=16i>0i--)
{
ads_datword<<=1//左移数据
ADS_DCLK = 0
if(DOUT==1) ads_datword = ads_datword|0x01//最低位或
ADS_DCLK = 1
}
return(ads_datword)
}
void main()
{
uword ADS_DataWord = 0
ADS_SHDN = 1
ADS_CS = 1
ADS_DCLK = 0
ADS_CS = 0
// SA2 A1 A0 —SGL/DIF PD1 PD0
// 1000— 1 11
ads_com(0x87)//10000111
ADS_DCLK = 0
ADS_DCLK = 1
while(ADS_BUSY == 1)
ADS_DataWord = ads_dat()
ADS_CS = 1
while(1)
}
1、首先运行计算机管理,然后在计算机管理中找到服务,在服务中查找所有Ads开头的服务,并把它们都禁用;2、运行控制面板,然后到程序和功能,在里面点击卸载程序,在卸载程序里面找到所有Ads开头的程序,然后一一卸载;
3、重启计算机,然后检查是否有任何Ads开头的文件或文件夹,如果有,则删除它们,如果没有,则表示Ads已经完全卸载。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)