• slider image 514
  • slider image 516
  • slider image 517
  • slider image 518
  • slider image 519
:::


Browsing this Thread:   1 Anonymous Users






Re: 關於PIC16F884 接腳配置的問題
#6
資深會員
資深會員


查看用戶資訊
1.產生中斷是從0xffff~0x0000時產生的,所以你少算1,再來中段時間有,計數初值,除頻的選擇,問的籠統,沒辦法回答

2.因為是PORT變化就會中斷,所以建議暫存PORT的狀態,用來比較,再來是不是正常或故障,一樣是拿暫存的狀態來判斷

3.每個中斷都有IF旗標會設起來,判斷有設起來的進去做,沒設的就離開

...SPEC多看看 感覺上 你還沒看資料就問

發表於: 2010/1/27 8:44
My name is jan,Jan是棒的
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關於PIC16F884 接腳配置的問題
#5
新會員
新會員


查看用戶資訊
參照:

Eigen 寫道:
CCP 你只能擇一使用

依你的目的我會這樣做

一、pwm 用硬體比軟體要容易實做,效率也比較高

二、風扇轉速大都幾千 RPM ,以6000RPM 為例,約為 100RPS

假設轉一圈產生一個 PLUSE ,信號大概就100HZ,每10ms 一個pluse

用 portb io pin change interrupt + timer 來數已經是綽綽有餘

這樣 ccp 就能做為 pwm 專用。

pseudo code 大概長這樣
int t1
int t2
int pulse_cnt
flag freq_set

main
(){

    if(
flag_set==1){
        
flage_set=0;
        
period= (t2-t1)/256
    
}
}

pin_change_isr(){
    
pulse_cnt++;
    if(
pulse_cnt==0)
    
t1=t2
    t2
=timer_4
    freq_set
=1;
}
timer1_isr(){
    
timer_4++;
}



感謝這位先進的分享

由於接觸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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關於PIC16F884 接腳配置的問題
#4
版主
版主


查看用戶資訊
一個很好的問題探討,在這種要求下每個人的想法可能不盡相同,提出我的作法參考一下:

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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關於PIC16F884 接腳配置的問題
#3
資深會員
資深會員


查看用戶資訊
CCP 你只能擇一使用

依你的目的我會這樣做

一、pwm 用硬體比軟體要容易實做,效率也比較高

二、風扇轉速大都幾千 RPM ,以6000RPM 為例,約為 100RPS

假設轉一圈產生一個 PLUSE ,信號大概就100HZ,每10ms 一個pluse

用 portb io pin change interrupt + timer 來數已經是綽綽有餘

這樣 ccp 就能做為 pwm 專用。

pseudo code 大概長這樣
int t1
int t2
int pulse_cnt
flag freq_set

main
(){

    if(
flag_set==1){
        
flage_set=0;
        
period= (t2-t1)/256
    
}
}

pin_change_isr(){
    
pulse_cnt++;
    if(
pulse_cnt==0)
    
t1=t2
    t2
=timer_4
    freq_set
=1;
}
timer1_isr(){
    
timer_4++;
}

發表於: 2010/1/26 10:03
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關於PIC16F884 接腳配置的問題
#2
資深會員
資深會員


查看用戶資訊
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是棒的
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


關於PIC16F884 接腳配置的問題
#1
新會員
新會員


查看用戶資訊
我使用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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------