智能车制作

标题: bdata 怎么改 [打印本页]

作者: 784653186    时间: 2015-3-17 21:40
标题: bdata 怎么改
uchar bdata sta; //bdata用于将变量定义在可位寻址片内数据存储区,允许位与字节混合访问。
sbit  RX_DR  = sta^6;
sbit  TX_DS  = sta^5;
sbit  MAX_RT = sta^4;

这段程序用在k60或kl46上,程序应该怎么改?


作者: majorfog    时间: 2015-3-18 11:16
用共用体和位域啊
typedef union{
uchar data;
struct {
uchar b0: 1;
uchar b1: 1;
uchar b2: 1;
uchar b3: 1;
uchar MAX_RT: 1;
uchar TX_DS: 1;
uchar RX_DR: 1;
uchar b7: 1;
};
}Data_Type;
Data_Type sta;
赋值的时候直接用sta.TX_DS=.....就ok了
作者: 784653186    时间: 2015-3-18 12:32
majorfog 发表于 2015-3-18 11:16
用共用体和位域啊
typedef union{
uchar data;

谢谢啊!
作者: 784653186    时间: 2015-4-2 16:45
majorfog 发表于 2015-3-18 11:16
用共用体和位域啊
typedef union{
uchar data;

请教一下,可以对sta进行赋值吗?如果可以,该怎么写呢?

作者: majorfog    时间: 2015-4-2 17:33
784653186 发表于 2015-4-2 16:45
请教一下,可以对sta进行赋值吗?如果可以,该怎么写呢?

sta是共用体,只可以对其中的某个成员赋值,不能对整体赋值
作者: majorfog    时间: 2015-4-2 17:34
784653186 发表于 2015-4-2 16:45
请教一下,可以对sta进行赋值吗?如果可以,该怎么写呢?

如果想对整体的8位赋值就赋给其中长度为8的data元素,sta.data=...

作者: 784653186    时间: 2015-4-2 20:23
majorfog 发表于 2015-4-2 17:34
如果想对整体的8位赋值就赋给其中长度为8的data元素,sta.data=...

一直以来接受您的帮助 ,太感谢您了。
作者: majorfog    时间: 2015-4-3 14:42
784653186 发表于 2015-4-2 20:23
一直以来接受您的帮助 ,太感谢您了。

举手之劳,不必客气





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2