#define uchar unsigned char
#define uint unsigned int
sbit DIO=P3^0
sbit SCLK=P3^1
/*从SPI总线上读入一个字节*/
uchar read(void)
{
uchar data i,inData
for(i=0i<8i++) // 移8次
{
SCLK = 0 // 拉低时钟线
inData <<= 1// Most Significant Bit First
inData |= DIO // 从SPI总线的数据输出线SO上读入一位
SCLK = 1 // 拉高时钟线
}
return(inData)
}
/*输出一个字节到SPI总线上*/
void write(uchar outData)
{
uchar data i
for(i=0i<8i++) // 移8次
{
SCLK = 0
outData <<= 1
DIO = CY // 移出一位,送出至SPI总线的数据输入线SI上
SCLK = 1
}
}
void do_n_byte(uint length,uint* pSend)
{
while(length--)
{
write(*pSend)
pSend++
}
// PORTB |= (1<<ADS1255_CS)
}
long int read_data(void)
{
uchar i,send[]={0x01,0xff,0xff,0xff}
long int date
do_n_byte(sizeof(send),send)
// strncpy((uchar*)&data,send+1,3)
for(i=0i<24i++)
{
SCLK = 0 // 拉低时钟线
date <<= 1 // Most Significant Bit First
date |= DIO // 从SPI总线的数据输出线SO上读入一位
SCLK = 1 // 拉高时钟线
}
// _NOP()
//send[1]=read()
//send[2]=read()
//send[3]=read()
//date = send[1]*65536 + send[2]*256 +send[1]
return date
}
/*
long int read_data_c(uchar num)
{
uchar send[]={0x03,0xff,0xff,0xff}
long int date[]
long int j=0
do_n_byte(sizeof(send),send)
date[0] = send[1]*65536 + send[2]*256 +send[1]
for(j<numj++)
{
uchar send[]={0xff,0xff,0xff}
do_n_byte(sizeof(send),send)
date[j+1] = send[1]*65536 + send[2]*256 +send[1]
}
return date
}
*/
long int read_standby(void)
{
uchar send[]={0x01,0xff,0xff,0xff,0xfd}
long int date
do_n_byte(sizeof(send),send)
strncpy((uchar*)&date,send+1,3)
return date
}
void set_selfcal(void)
{
//PORTB &= ~(1<<ADS1255_CS)
write(0xf0)// lfcal command byte(in order to get the best performance)
// PORTB |= (1<<ADS1255_CS)
}
void set_wakeup(void)
{
//PORTB &= ~(1<<ADS1255_CS)
write(0x00)//wakeup command byte(0xff can too)
//PORTB |= (1<<ADS1255_CS)
}
void set_standby(void)
{
//PORTB &= ~(1<<ADS1255_CS)
write(0xfd)//standby command byte
//PORTB |= (1<<ADS1255_CS)
}
void set_sync(void)
{
//PORTB &= ~(1<<ADS1255_CS)
write(0xfc)//sync command byte
//PORTB |= (1<<ADS1255_CS)
}
void write_register(uchar addr,uchar date)
{
uchar send[] = {0x50,0x00,0x00}//write 1 register(as used 0x00)
send[0] |= addr//starting from register addr(as used 0101 "addr"b)
send[2] |= date//data writed
do_n_byte(sizeof(send),send)
}
uchar read_register(uchar addr)
{
uchar send[] = {0x10,0x00,0xff}//read 1 register(as used 0x00)
send[0] |= addr//starting from register addr(as used 0001 "addr"b)
do_n_byte(sizeof(send),send)
send[2]=read()
return send[2]//content saved in the send[2]
}
void init_spi(void)
{
}
void main()
{
while(1)
}
发动机抖动这种比较常见的问题,实际上造成的原因可能如下:燃油标号不合理引发爆震
长期低速行驶,引发气门、节气门积碳
劣质汽油引发发动机抖动,防冻液不足引发缸垫烧蚀
发动机缺缸,缸线或者点火线圈故障
装配不佳导致气缸气密封不佳
正时系统故障导致配气出现问题
ADS(先进设计系统)在Beckhoff TwinCAT 系统中,各个软件模块(如TwinCAT PLC、TwinCAT NC、Windows 应用程序等)的工作模式类似于硬件设备,它们能够独立工作。
各个软件模块之间的信息交换通过TwinCAT ADS 而完成。ADS(Advanced Design System)即先进设计系统,它为设备之间的通讯提供路由。在TwinCAT PC 和Beckhoff 的CX、BX、BC 系列控制器中都包含TwinCAT 信息路由器。因此各个ADS 设备之间都能够交换数据和信息。
扩展资料:
通过从频域和时域电路仿真到电磁场仿真的全套仿真技术,ADS让设计师全面表征和优化设计。单一的集成设计环境提供系统和电路仿真器,以及电路图捕获、布局和验证能力 —— 因此不需要在设计中停下来更换设计工具。
先进设计系统是强大的电子设计自动化软件系统。它为蜂窝和便携电话、寻呼机、无线网络,以及雷达和卫星通信系统这类产品的设计师提供完全的设计集成。
参考资料来源:百度百科-ADS
参考资料来源:百度百科-仿真技术
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)