線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1437
推到 Plurk!
推到 Facebook!

AVR 的問題請教

答題得分者是:powmien
henrylaw
一般會員


發表:1
回覆:2
積分:0
註冊:2005-07-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-24 12:52:14 IP:203.218.xxx.xxx 未訂閱
各位大大, 本人第一次用AVR ATtiny13. 我看了一些sample都要include tn13def.inc. 請問是什麼. 誰可以發給我嗎? 如果用PWM功能. PWM 是否設定一次便會自動一直有輸出. 請賜教! 有沒有一些好地方有很多sample code 參考! 謝謝! 發表人 - ㊣ 於 2005/07/24 13:12:20
powmien
初階會員


發表:27
回覆:80
積分:41
註冊:2004-10-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-26 11:23:42 IP:60.248.xxx.xxx 未訂閱
one.) 請去Atmel 官網下載 Avr Studio 4.11 版 安裝 ,机乎所有chip 的inc檔都有.... two.)關於PWM的使用請參考小弟的拙作: 【發表】[ASM]Avr ATtiny13 簡單的溫控風扇裝置 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=66350 【發表】[ASM]Avr ATtiny13 簡易頻率產生器 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=66186 這二篇都是控制pwm duty cycle 相關的...
henrylaw
一般會員


發表:1
回覆:2
積分:0
註冊:2005-07-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-26 15:30:40 IP:61.10.xxx.xxx 未訂閱
謝謝你的支持, 我看了你的作品.如果我只用PB0作為PWM輸出的話.那可以嗎? 沒有PB1作比較. 請教一下如果PWM輸出10KHz 怎樣計算. 還有PWM是否任何情況下都可以改變Duty Cycle. Thank you!! HenryLaw
powmien
初階會員


發表:27
回覆:80
積分:41
註冊:2004-10-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-27 10:39:32 IP:60.248.xxx.xxx 未訂閱
你手上應該有 tiny13 的datasheet吧..   你可以看 Pin Configurations 那邊,PB0跟PB1是 hardware pwm 的二隻pin 所以不論是二隻一起或單獨皆可,其它的pin頂多用software Simulators, 其實我的文章裡面有約略提到怎麼算,但是這並不是很精確,而且我並沒外 接 crystal ,單純用 internal osc ...    以下片段轉自我的文章 = =+ 註:首先hardware做pwm有好幾種模式,而我是選擇Fast PWM MODE FAST PWM MODE 是由TCNTn COMPARE OCR0A 這個REGISTER 來改變PB0 準位的.. 詳見 我附上的ATtiny13 DATASHEET. 要讓HARDWARE 多久改變PULSE一次才會準確呢?(OCR0A 要放入多少數值?) 註:CLK就是我的internal osc T=1/F so... CLK=4.8Mhz => TIME= 0.208ns 註:Timer 除頻256 256*T=256/F so Time * 256 為現在 timer 計數一次的時間 註:除頻的選擇跟你要產生的 Freq 有關系,請參考Datasheet 除頻選擇256 => TIMER 計數一次的時間為 0.208ns * 256 = 53.2ns 假設今天要振出3.6khz(3600hz) 的話 T=1/F =>3600hz大約為277.7ns 註:那Timer要數幾次才有277.7ns呢? 所以… 用277.7ns / 53.2 大約=5 277.7ns/53.2ns 約=5 因為我的HARDWARE 選擇 FAST PWM MODE .. 所以一個TCNTn 的COUNT 會產生一個PULSE (由0->1 OR 1->0 ) 所以如果放5進去的話,實際產生出來PULSE 的FREQUENCY 是 3600hz * 2 =7200hz 所以要產生3600hz 的話... OCR0A 要填入 10 (5*2) ps:因為T=1/F 在這裡再重申,這樣產生出來的pwm並不是很精確。 希望這樣講解你能理解,正所謂先求有再求好,你先想辦法輸出pwm,再去玩怎麼控制它吧…。
henrylaw
一般會員


發表:1
回覆:2
積分:0
註冊:2005-07-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-30 15:16:37 IP:218.102.xxx.xxx 未訂閱
powmien, I check the datasheet no mention how to change internal clock from 9.6MHz(default) to 4.8MHz. Could you teach me how to change clock in program and which register setting is need(OCCAL?). Thank you!
powmien
初階會員


發表:27
回覆:80
積分:41
註冊:2004-10-20

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-30 16:18:53 IP:218.160.xxx.xxx 未訂閱
如果你是燒進chip 要設定 Internal RC 的話.. 要燒 Fuse ,請參考下列圖(1)。    如果是你是要在Avr Studio 做 Simulator 請參考圖(2)。    圖(1): 圖(2):
系統時間:2024-09-11 9:26:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!