newhand 发表于 2005-5-24 13:05:36

请教:bit point_on=0的作用

在学马老师的第六章,其中单个数码管的显示程序中有

    bitpoint_on=0

    .

    .

    .

   if(piont_on)porta|=0x80

    .

    .

    .

    point_on=~point_on



本人看不明白,烦请马老师注解一下,或看明白的人指教

newhand 发表于 2005-5-24 15:27:16

对不起马老师,我把BIT改成unsigned char后编译才通过;可能我用的是ICC的缘故。

newhand 发表于 2005-5-24 15:46:38

晕,看完第六章才明白point_on的作用,马老师真是煞费苦心!

谢谢你,马老师!

ftfkc 发表于 2009-4-24 14:32:48

我也不懂这个是干吗的,百思不得其解啊,请已经知道的大侠帮忙解说一下,学的好困难啊
谢谢了请回复到ssunliang@sohu.com
不胜感激

heshan 发表于 2009-4-27 20:47:12

bit 是定义了一个只能为0或1的变量

machao 发表于 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个字节。

wuyuwuqi 发表于 2009-5-7 10:42:52

为了显示小数点吧!

machao 发表于 2009-5-8 09:22:32

对的,point_on本身是一个标志变量,在本例中标志是否点亮小数点。0不亮,1亮。

代码中的point_on1的值间隔一定时间(如1s)做“0”、“1”转换,这样小数点也就以1s的间隔亮暗转换,表示时钟在走动。

taocongrong 发表于 2011-12-18 17:12:50

我看到了这里 觉的马老师第十一章的第一个例子才想到 icc中是没有bit的 今天看到这个帖子才彻底明白,谢谢马老师。

AVRSY 发表于 2011-12-21 21:48:03

看了你的解释才明白,谢谢马老师!

saymeok 发表于 2012-1-30 10:26:10

页: [1]
查看完整版本: 请教:bit point_on=0的作用