Re: 關於PIC16F884 接腳配置的問題
|
||||
---|---|---|---|---|
新會員
|
參照:
感謝這位先進的分享 由於接觸PIC的時間只有三天, 所以有比較多的疑問, 再請教一下 1. 如果使用20MHz的外部震盪器, 那麼 timer1_isr 的觸發週期是否為 0xFFFF * (1/20M) = 3.27m sec? 2.由於有兩組轉速需要偵測, 當有 PORTB interrupt-on-change 發生時, 要如何知道是FAN1 或是 FAN2 觸發該中斷? 如果有一風扇故障時, 轉速為零, 一直沒去觸發該中斷, 是否也不會知道有風扇已經故障了? 3.timer1 及 portb 兩者皆會觸發中斷, 要如何設定 timer1的中斷觸發時, 只會去執行 timer1_isr 這項中斷? 而不會去執行pin_change_isr? 多謝指導 感激不盡
發表於: 2010/1/26 15:13
|
|||
|
Re: 關於PIC16F884 接腳配置的問題
|
||||
---|---|---|---|---|
版主
|
一個很好的問題探討,在這種要求下每個人的想法可能不盡相同,提出我的作法參考一下:
1. 因為用軟體方式產生 PWM 要耗掉 MCU 很多的效能,所以還是建議 PWM 直接由 CCP1 & CCP2 以硬體方式產生。 2. 致於算風扇轉速的問題,因為風扇在怎樣轉對MCU而言都算是很慢的輸入。可以考慮用 INT 中斷及 IOC (Interrupt on pin change) 的輸入來當作風扇轉速的輸入,利用 Timer1 在一單位時間內 INT & IOC 發生了多少次的中斷就可以算出風扇的轉速了。 3. Timer0 & Timer1 都可以外接輸入的訊號,因為轉速的變化是比較慢的,可以先用 Timer0 當計時基準先量一下 Timer1 的風扇轉速;然後改變 Timer1 的模式將Timer1 當計時標準量測 Timer0 的另一個風扇輸入。 3. 兩組風扇用 I/O 腳切換多工器選擇後直接送給Timer0 量測,透過I/O 腳的選擇就可以分別量到兩個風扇的輸入。 4. PIC16F884 的 Timer1 有 Gate Time 的功能可以用來量測輸入的 High 的週期,可以考慮一下是否可用。
發表於: 2010/1/26 10:08
|
|||
|
Re: 關於PIC16F884 接腳配置的問題
|
||||
---|---|---|---|---|
資深會員
|
CCP 你只能擇一使用
依你的目的我會這樣做 一、pwm 用硬體比軟體要容易實做,效率也比較高 二、風扇轉速大都幾千 RPM ,以6000RPM 為例,約為 100RPS 假設轉一圈產生一個 PLUSE ,信號大概就100HZ,每10ms 一個pluse 用 portb io pin change interrupt + timer 來數已經是綽綽有餘 這樣 ccp 就能做為 pwm 專用。 pseudo code 大概長這樣
int t1
發表於: 2010/1/26 10:03
|
|||
|
Re: 關於PIC16F884 接腳配置的問題
|
||||
---|---|---|---|---|
資深會員
|
TIMER其實就是做觸發旗標的設定
也就是不一定要在中斷處理,但是一定要設定觸發條件 何況中斷處理太多事情,會造成CPU的負荷太重,也不是好事 PWM是脈寬調變技術,他的原理就是一個固定的週期內改變ON跟OFF的比例 其實軟體處理PWM,也不外乎兩個重點,固定的週期是多少,解析度又是多少 例如固定週期100ms,他的解析度要求到1%,也就是實際處理的週期為1%~99%(因為0%跟100%,一個變0了,一個變直流) 中斷就等於最小的解析度時間,也就1ms,那要處理幾%的ON跟OFF,因該就算的出來了吧,如果要求更精準,可以做N次中斷等於最小解析度,但是MCU能不能負荷,要考慮清楚
發表於: 2010/1/26 8:51
|
|||
My name is jan,Jan是棒的
|
||||
|
關於PIC16F884 接腳配置的問題
|
||||
---|---|---|---|---|
新會員
|
我使用PIC16F884 及 Hi-Tech C complier Lite做為開發平台
在目前的系統規劃裡, 為偵測兩組風扇的轉速, 故使用CCP1及CCP2來使用capture的功能 而需要兩組PWM來控制風扇轉速, 但是 ECCP模組已設置為capture的功用 那是不是只能用一般I/O port 來做PWM? 那麼要如何實現? 在目前的構想裡, 使用timer2 來 觸發中斷 改變I/O的準位 可是這麼做的話, 似乎只能做到調整頻率, 而無法做到定頻變duty的控制? 希望各位先進可以不吝給予指教 謝謝
發表於: 2010/1/25 17:06
|
|||
|