Robofun 機器人論壇

標題: 請問如何修改analogWrite 改變PWM輸出頻率 [打印本頁]

作者: thumbd72034    時間: 2015-10-8 11:31
標題: 請問如何修改analogWrite 改變PWM輸出頻率
請問arduino所產生的PWM要如何調整頻率呢?

arduino analogWrite內定的PWM時間週期似乎2ms輸出PWM為500hz




目前是想把500hz,調降到100hz
有哪些方法呢?
作者: 超新手    時間: 2015-10-8 12:48
http://playground.arduino.cc/Code/PwmFrequency
在UNO 上試過 OK, 其他就不一定了
不過他的倍數有限制, 大部份是 2^N 次方
裡面有寫各接腳的限制
作者: hrean    時間: 2015-11-2 15:00
這個主題我之前有研究過
在Arduino現有的API是不能改頻率
只能直接改Atmega MCU的暫存器,改變除頻的量
以Arduino UNO為例,pin 5 的 PWM 輸出是從 timer 0 所產生的
原始的除頻量是64
雖然可以除頻量,不過不能微調,只有幾個選項可以選 (如下表)

要如何才能夠改CS00~CS02?
可以使用bitWrite()函式來做,範例如下:

bitWrite(TCCR0B, CS00, 1);
bitWrite(TCCR0B, CS01, 0);
bitWrite(TCCR0B, CS02, 1);  //修改除頻量為 1024




歡迎光臨 Robofun 機器人論壇 (https://www.robofun.net/forum/) Powered by Discuz! X3.2