极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12374|回复: 5

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

[复制链接]
发表于 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号端口上,声音发出的频率为什么都不同呢?!好奇怪。
回复

使用道具 举报

发表于 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不就一个控制变量/?怎么会影响输出?需要高手点破!
回复 支持 反对

使用道具 举报

发表于 2014-5-1 00:07:54 | 显示全部楼层
张竞 发表于 2014-4-30 21:36
想不通?i不就一个控制变量/?怎么会影响输出?需要高手点破!

你需要的还真不少:)
回复 支持 反对

使用道具 举报

发表于 2014-5-3 22:30:34 | 显示全部楼层
sam 发表于 2014-5-1 00:07
你需要的还真不少:)

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

使用道具 举报

发表于 2014-5-9 22:13:04 | 显示全部楼层
                                            
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-13 20:16 , Processed in 0.036861 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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