49741933o 发表于 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值右移一位.

49741933o 发表于 2014-10-28 13:49:56

林定祥 发表于 2014-10-28 10:41 static/image/common/back.gif
问题一都是涉及位操作,第一个是Color值和0000001进行"与"操作,也即color得到的数其他位清零,最右位有"1"得" ...

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

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

:loveliness:



谢谢!
页: [1]
查看完整版本: 关于几个子函数的问题