欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 用arduino作為方波發生器,非常精準,頻率任意可調 [打印本頁]

作者: a362880    時間: 2018-10-19 23:40
標題: 用arduino作為方波發生器,非常精準,頻率任意可調
最近研究了arduino的定時器,可以用pwm作為方波發生器,在9腳上輸出方波。代碼如下:
void setup()
{
  // 下面的等值于 OC1A = 輸出用于定時器1的CTC模式
  pinMode(9, OUTPUT);  // 設置默認關聯了D9(查表得知)為輸出
  TCCR1B=0; // 只是個復位的習慣可以不要
  TCCR1A=_BV(COM1A0); // 要是困擾的話你也可以寫成 TCCR1A = 0b01000000;
  //這里和上一個表示了 = CTC 模式, 開啟比較器(默認輸出), prescaler = 1
  TCCR1B = _BV(WGM12)|_BV(CS10) ; //  這里等值于 TCCR1B = 0b00001001;

  // 最有意思的了,16位的玩意來確定要一個怎樣的頻率
  OCR1A = 0; // 計算為:F_CPU/2/Need_HZ-1 來得到你想要的,遺憾的是四舍五入來截取頻率
  
}

void loop(){
  //這次啥也沒做
}

通過設置OCR1A來改變頻率大小,例子上輸出方波頻率為8M,夠高吧!由于OCR1A是16為寄存器,最大也只能設為65535,故頻率最低可達到122HZ,arduino晶振為16M,因此這個例子能輸出的頻率范圍為f/(2*65536)  到f/2, 其中f為arduino時鐘頻率,即16M

下面是生成8M方波的圖形,非常精準


作者: 252622979    時間: 2018-10-23 10:53
還不太明白
作者: aing123    時間: 2018-10-25 19:26
不明白!

作者: 都市郎    時間: 2019-2-14 20:56
自娛自樂,自說自話吧!
作者: gyy4606    時間: 2019-3-2 09:50
不明白! void loop()這里什么也沒有,怎么會有方波輸出?
作者: 疏雨妝臣    時間: 2019-12-4 15:00
用pro mini試的。還可以。學習了

2019-12-04_14.57.56.jpg (1.24 MB, 下載次數: 163)

2019-12-04_14.57.56.jpg

2019-12-04_14.58.26.jpg (1.77 MB, 下載次數: 180)

2019-12-04_14.58.26.jpg

2019-12-04_14.59.41.jpg (1.63 MB, 下載次數: 167)

2019-12-04_14.59.41.jpg

作者: 難得糊涂2018    時間: 2019-12-7 18:19
占空比也可調才好
作者: 第五個季節    時間: 2020-3-29 23:10
直接操作寄存器?




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1