极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10778|回复: 2

关于几个子函数的问题

[复制链接]
发表于 2014-10-27 22:47:53 | 显示全部楼层 |阅读模式
本帖最后由 49741933o 于 2014-10-27 22:54 编辑

                                         求大神解答两个问题

{:soso_e121:}       {:soso_e121:}

问题一。。
#define RED 1
#define GREEN 2
#define ORANGE 3
#define redPin 9
#define greenPin 10
void flash(int color,int times,int duration)   //times是闪烁次数,duration闪烁频率
{
   int red = color & 0x01;  //这句是什么意思啊?
   int green = color >> 1;   //这句是什么意思啊,求解释啊?
   for(int i=0;i<times;i++)
   {
      digitalWrite(redPin,red);
      digitalWrite(greenPin,green);
       delay(duration/2);
      digitalWrite(redPin,LOW);
      digitalWrite(greenPin,LOW);
       delay(duration/2);
   }
}
  flash函数的用法:如,flash(RED,1,500);
谁能分析一下这个子函数呀?先谢谢啦!


{:soso_e121:}        {:soso_e121:}

问题二。。。

可不可以解释下EEPROM是怎样存数据的和读取数据的?有关于它的资料可不可以提供一下?对它很陌生,但是它又很重要。

回复

使用道具 举报

发表于 2014-10-28 10:41:35 | 显示全部楼层
本帖最后由 林定祥 于 2014-10-28 10:43 编辑

问题一都是涉及位操作,第一个是Color值和0000001进行"与"操作,也即color得到的数其他位清零,最右位有"1"得"1",由"0"得"0",
color>>1 是将color值右移一位.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-28 13:49:56 | 显示全部楼层
林定祥 发表于 2014-10-28 10:41
问题一都是涉及位操作,第一个是Color值和0000001进行"与"操作,也即color得到的数其他位清零,最右位有"1"得" ...

Color和0x01进行与操作,它们的操作原理知道了,但是它这样操作有什么用呢?最终结果形式又是怎样的?你可不可以拿这个函数举例说明呢?

另外可不可以详细解释下右移这个操作以及它这样操作的目的?





谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 14:49 , Processed in 0.037849 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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