2013-4-25 17:26:48 [显示全部楼层]
6318浏览
查看: 6318|回复: 10

[已解决] UNO R3的时钟最快是多少?

[复制链接]
UNO R3的时钟最快是多少HZ?我测了一下貌似最快是7us?是这样的吗?可以用它测量宽度大概在30-60ns的脉冲吗?模拟端口可以吗?谢谢了?

admin  管理员

发表于 2013-4-25 17:59:08

UNO 的时钟是16Mhz的。 所以,最快是6.25us。
回复

使用道具 举报

zmj2004  学徒
 楼主|

发表于 2013-4-25 18:16:22

admin 发表于 2013-4-25 17:59
UNO 的时钟是16Mhz的。 所以,最快是6.25us,没有错。

16MHZ,不是应该是1/(16*1000*1000)=6.25*10^-8s=6.25*10^-5ms=6.25*10^-2us=62.5ns吗?
回复

使用道具 举报

zmj2004  学徒
 楼主|

发表于 2013-4-25 18:20:49

admin 发表于 2013-4-25 17:59
UNO 的时钟是16Mhz的。 所以,最快是6.25us,没有错。

我写的程序让数字口不停的0、1切换,中间没有延时,然后用示波器测量,貌似一个脉冲宽度是4us,也就是250HZ,达不到这么高的频率,难道UNO R3的频率可以调节吗?什么速度才可以达到测量30-50ns的脉冲的信号啊!我用模拟端测量,一旦测量到一次就数字端输出1,结果一直没有输出1。。。怎么改进?
回复

使用道具 举报

zmj2004  学徒
 楼主|

发表于 2013-4-25 18:21:06

admin 发表于 2013-4-25 17:59
UNO 的时钟是16Mhz的。 所以,最快是6.25us,没有错。

哦,是250KHZ
回复

使用道具 举报

admin  管理员

发表于 2013-4-25 18:23:43

UNO 的pwm 频率可调。 默认500hz。
回复

使用道具 举报

mickey  NPC

发表于 2013-4-25 18:24:51

应该是62.5ns
回复

使用道具 举报

admin  管理员

发表于 2013-4-25 18:29:30

zmj2004 发表于 2013-4-25 18:16
16MHZ,不是应该是1/(16*1000*1000)=6.25*10^-8s=6.25*10^-5ms=6.25*10^-2us=62.5ns吗?

哈哈,犯低级错误了。你计算是正确的。
回复

使用道具 举报

zmj2004  学徒
 楼主|

发表于 2013-4-25 18:32:34

admin 发表于 2013-4-25 18:23
UNO 的pwm 频率可调。 默认500hz。

怎么调节啊?教教我吧,谢谢了!
回复

使用道具 举报

zmj2004  学徒
 楼主|

发表于 2013-4-25 18:35:12

admin 发表于 2013-4-25 18:29
哈哈,犯低级错误了。你计算是正确的。

谢谢你啦~问题是这个时钟如何调节到最快啊?写程序设置吗?还有这个影响模拟端采样时间吗?或者影响数字端?
回复

使用道具 举报

admin  管理员

发表于 2013-4-25 19:09:36

set Timer2 的PWM输出频率到31kHz
  1. /**************************************************************************************************
  2. *
  3. *   PWM_Timer2_31kHz_00
  4. *
  5. *   Version:      00 - Mai 2010
  6. *   Author:       Tom Pawlofsky www.caad.arch.ethz.ch tom-DOT-pawlofsky-AT-arch-DOT-ethz-DOT-ch
  7. *
  8. *   Desc:         change prescaler of Timer 2 to have 31kHz Frequency at pin 3 and 11
  9. *
  10. ***************************************************************************************************/
  11. int pinA = 3; // pin 3 and 11 are PWM output controled by Timer2
  12. int pinB = 11; // connect pinA/B to H-Bridge
  13. void setup(){
  14.         //__________________________________TIMER2_for_Motor_PWM_________________________________
  15.         // set TIMER2 for PWM 32 Hz
  16.         //
  17.         // clear all prescaler bits in TCCR2B = the last 3 Bits
  18.         // leave other bits as set by arduino init() in wiring.c
  19.         byte mask = B11111000;
  20.         TCCR2B &= mask; // TCCR2B is now xxxxx000
  21.         //
  22.         // set CS22:20 in TCCR2B see p 156 of datasheet
  23.         TCCR2B |= (0<<CS22) | (0<<CS21) | (1<<CS20); // same as TCCR2B |= B00000001; TCCR2B is now xxxxx001
  24.         //__pinmode
  25.         pinMode(pinA,OUTPUT);
  26.         pinMode(pinB,OUTPUT);
  27.         //
  28.      
  29. }
  30. void loop(){
  31.        analogWrite(pinA,128); // 50% Duty
  32.         analogWrite(pinB,32); //12.5 % Duty
  33. }
复制代码
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail