各位大侠,
需要将一个8位的char型数据发送到8个IO口(PB区域4个,PG区域4个),用什么语句实现最快?
方法1:对8位数据各位判断是不是1,如果是1,则对相应的IO口置高电平,否则置低电平。
分析:这个操作貌似比较麻烦,需要位操作,然后判断比较,最后赋值。
方法2:查了下,C语言中有位段操作,即定义一个结构体,然后可对各位进行直接操作。
分析:这个耗时会不会短一些?
我写了段代码如下,但语法有问题,对着谭浩强的书写的,自己实在看不出毛病来。有大侠能否看下:
typedef struct bus_data
{
unsigned int b0:1;
unsigned int b1:1;
unsigned int b2:1;
unsigned int b3:1;
unsigned int b4:1;
unsigned int b5:1;
unsigned int b6:1;
unsigned int b7:1;
}sys_outdata ;
sys_outdata.b0=0;//显示这句话有错误。
十分感谢! |