智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2373|回复: 4
打印 上一主题 下一主题

K60如何定义位变量

[复制链接]

165

主题

4119

帖子

2

精华

杰出人士

老司机【呆萌侠】

Rank: 12Rank: 12Rank: 12

积分
16895

活跃会员奖章优秀会员奖章推广达人奖章热心会员奖章论坛元老奖章论坛骨干奖章在线王奖章资源大师奖章

QQ
威望
9751
贡献
4562
兑换币
1629
注册时间
2011-7-23
在线时间
1291 小时
毕业学校
工大
跳转到指定楼层
1#
发表于 2014-4-2 15:08:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式



如题,K60如何定义一个可以按位寻址的片内存储区。通俗的说就是位变量?求教= =。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

26

主题

914

帖子

3

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5643

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章资源大师奖章

威望
3361
贡献
718
兑换币
2157
注册时间
2012-10-28
在线时间
782 小时
2#
发表于 2014-4-2 16:17:06 | 只看该作者
具体定义应该是没办法。。除非汇编,具体汇编可不可以我也不知道。。不过可以定义一个8位无符号,采用位域的结构定义来直接访问。
//位域
#define GET_BITFIELD(addr) (volatile bit_field *)(&addr)//返回的是指针
typedef struct bit_S
{
        unsigned char bit0:1;
        unsigned char bit1:1;
        unsigned char bit2:1;
        unsigned char bit3:1;
        unsigned char bit4:1;
        unsigned char bit5:1;
        unsigned char bit6:1;
        unsigned char bit7:1;
}bit_field;

void  write_command(unsigned char  c)
{
    cs=0;
    dcx=0;
    sdi=(GET_BITFIELD(c))->bit7;scl=0;scl=1;
    sdi=(GET_BITFIELD(c))->bit6;scl=0;scl=1;
    sdi=(GET_BITFIELD(c))->bit5;scl=0;scl=1;
    sdi=(GET_BITFIELD(c))->bit4;scl=0;scl=1;
    sdi=(GET_BITFIELD(c))->bit3;scl=0;scl=1;
    sdi=(GET_BITFIELD(c))->bit2;scl=0;scl=1;
    sdi=(GET_BITFIELD(c))->bit1;scl=0;scl=1;
    sdi=(GET_BITFIELD(c))->bit0;scl=0;scl=1;
    cs=1;      
}你看看把。反正我用的没问题。当然也可以移位与上0x01或者0x80神马的方法也可以。具体哪个方法时间短我也没测过
回复 支持 反对

使用道具 举报

165

主题

4119

帖子

2

精华

杰出人士

老司机【呆萌侠】

Rank: 12Rank: 12Rank: 12

积分
16895

活跃会员奖章优秀会员奖章推广达人奖章热心会员奖章论坛元老奖章论坛骨干奖章在线王奖章资源大师奖章

QQ
威望
9751
贡献
4562
兑换币
1629
注册时间
2011-7-23
在线时间
1291 小时
毕业学校
工大
3#
 楼主| 发表于 2014-4-2 17:41:37 | 只看该作者
释是圣杰 发表于 2014-4-2 16:17
具体定义应该是没办法。。除非汇编,具体汇编可不可以我也不知道。。不过可以定义一个8位无符号,采用位域的 ...

好的,非常感谢,为什么51都可以直接 bdata   而K60 却不能直接定义么= =。
回复 支持 反对

使用道具 举报

26

主题

914

帖子

3

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5643

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章资源大师奖章

威望
3361
贡献
718
兑换币
2157
注册时间
2012-10-28
在线时间
782 小时
4#
发表于 2014-4-2 19:35:41 | 只看该作者
恋May 发表于 2014-4-2 17:41
好的,非常感谢,为什么51都可以直接 bdata   而K60 却不能直接定义么= =。

因为51低端、、、见过51汇编。。。但是没见过K60汇编。。。
回复 支持 反对

使用道具 举报

3

主题

276

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2465
威望
1088
贡献
809
兑换币
733
注册时间
2014-7-26
在线时间
284 小时
5#
发表于 2015-2-24 11:11:32 | 只看该作者
正在考虑k60位变量的问题,搜到这个贴,获益良多,感谢2楼贡献
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-7 00:30 , Processed in 0.047473 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表