Stormer 发表于 2014-4-27 04:29:13

[问题]为什么数字端口每个输出的频率都不同?

本帖最后由 Stormer 于 2014-4-27 06:17 编辑

我在试着输出一段声音:

void setup()
{
pinMode(7,OUTPUT);
}

void loop()
{

   for (int i=0; i<255; i++)
   {
    analogWrite(7,i);
   delayMicroseconds(50);//wait 50us
   }
}

如果我把输出电平的信号换到0~6号端口上,声音发出的频率为什么都不同呢?!好奇怪。

sam 发表于 2014-4-27 09:55:29

您的for循环里面,随着i值的变化,声音是不断变化的呀:)
这样:
void setup()
{
pinMode(7,OUTPUT);
}

void loop()
{

   //for (int i=0; i<255; i++)
   //{
    analogWrite(7,200);
   delayMicroseconds(50);//wait 50us
    // }
}
输出就不会变化了。

张竞 发表于 2014-4-30 21:36:50

想不通?i不就一个控制变量/?怎么会影响输出?需要高手点破!

sam 发表于 2014-5-1 00:07:54

张竞 发表于 2014-4-30 21:36 static/image/common/back.gif
想不通?i不就一个控制变量/?怎么会影响输出?需要高手点破!

你需要的还真不少:)

张竞 发表于 2014-5-3 22:30:34

sam 发表于 2014-5-1 00:07 static/image/common/back.gif
你需要的还真不少:)

哦,,高手对不起,我没有看清楚他的代码是analogWrite(7,i);{:3_42:}

sam 发表于 2014-5-9 22:13:04

:)                                          
页: [1]
查看完整版本: [问题]为什么数字端口每个输出的频率都不同?