amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 4364|回复: 10

请教:bit point_on=0的作用

[复制链接]
发表于 2005-5-24 13:05:36 | 显示全部楼层 |阅读模式
在学马老师的第六章,其中单个数码管的显示程序中有

    bit  point_on=0

    .

    .

    .

     if(piont_on)porta|=0x80

    .

    .

    .

    point_on=~point_on



本人看不明白,烦请马老师注解一下,或看明白的人指教
 楼主| 发表于 2005-5-24 15:27:16 | 显示全部楼层
对不起马老师,我把BIT改成unsigned char后编译才通过;可能我用的是ICC的缘故。
 楼主| 发表于 2005-5-24 15:46:38 | 显示全部楼层
晕,看完第六章才明白point_on的作用,马老师真是煞费苦心!

谢谢你,马老师!
头像被屏蔽
发表于 2009-4-24 14:32:48 | 显示全部楼层
我也不懂这个是干吗的,百思不得其解啊,请已经知道的大侠帮忙解说一下,学的好困难啊
谢谢了请回复到ssunliang@sohu.com
不胜感激
发表于 2009-4-27 20:47:12 | 显示全部楼层
bit 是定义了一个只能为0或1的变量
发表于 2009-4-27 20:55:53 | 显示全部楼层
point_on本身是一个标志变量,在这里该标志只有“0”和“1”两种情况。

由于CVAVR支持位(BIT)变量(标准C中是没有这样的变量类型),所以把它定义成BIT型,它只占用一个字节的1位,这样一个字节就能放8个位变量。
ICC不支持位变量,所以只能定义成char(字节型)。这样就浪费RAM空间了。

如果系统中使用了8个只有“0”和“1”2种情况的标志变量,在ICC种需要占8个字节,而在CVAVR中只占1个字节。
发表于 2009-5-7 10:42:52 | 显示全部楼层
为了显示小数点吧!
发表于 2009-5-8 09:22:32 | 显示全部楼层
对的,point_on本身是一个标志变量,在本例中标志是否点亮小数点。0不亮,1亮。

代码中的point_on1的值间隔一定时间(如1s)做“0”、“1”转换,这样小数点也就以1s的间隔亮暗转换,表示时钟在走动。
头像被屏蔽
发表于 2011-12-18 17:12:50 | 显示全部楼层
我看到了这里 觉的马老师第十一章的第一个例子才想到 icc中是没有bit的 今天看到这个帖子才彻底明白,谢谢马老师。
发表于 2011-12-21 21:48:03 | 显示全部楼层
看了你的解释才明白,谢谢马老师!
发表于 2012-1-30 10:26:10 | 显示全部楼层
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2019-9-17 11:17

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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