Re: 請問如何用中斷來控制頻率
|
||||
---|---|---|---|---|
高級會員
|
版主寫的 真 精闢
我想的太複雜了..汗顏汗顏...
發表於: 2006/6/27 17:44
|
|||
|
Re: 請問如何用中斷來控制頻率
|
||||
---|---|---|---|---|
版主
|
除四可以直接設定 Proscaler 為 1:4 模式,用底下的方式寫會比較簡單:
TMR1_VAL equ .1000
發表於: 2006/6/27 16:35
|
|||
|
Re: 請問如何用中斷來控制頻率
|
||||
---|---|---|---|---|
高級會員
|
PIC16FXXX 好像沒 MOVFF 這ASM 指令
沒有的話,設定TIMERH/L 的方法就要改成 MOVF TIMER1_CNT_H,W MOVWF TMR1H MOVF TIMER1_CNT_L,W MOVWF TMR1L
發表於: 2006/6/27 12:49
|
|||
|
Re: 請問如何用中斷來控制頻率
|
||||
---|---|---|---|---|
高級會員
|
設定t1con 的bit[5:4]
bit5=1 bit4=0 設定為除4 (data sheet 第57頁) TIMER1_CNT_H EQU 0X60 ;設定儲存計數值的變數 TIMER1_CNT_L EQU 0X61 ;設定儲存計數值的變數 MOVLW [65535要減的值, HIGH BYTE] MOVWF TIMER1_CNT_H ;把要減的值(HIGH BYTE)存入 MOVLW 0XFF SUBWF TIMER1_CNT_H,F ; F可省略, W-F 儲到F MOVLW [65535要減的值, LOW BYTE] MOVWF TIMER1_CNT_L ;把要減的值(LOW BYTE)存入 MOVLW 0XFF SUBWF TIMER1_CNT_L,F ; F可省略, W-F 儲到F 以上…如果你要減的值為 .9999=>0X270F HIGH BYTE就擺 X27 LOW BYTE就擺 X0F 由於0數到65535(0XFFFF) 就是數65536次 所以…只用0XFFFF去減 如果真的要65536的話 再加上下面描述 INCF TIMER1_CNT_L BTFSC STATUS,C ; 如果有進位執行下一行 INCF TIMER1_CNT_H ;把HIGH BYTE 加1 timer初始化時填入,計數到中斷發生再回填. (指定TIMER的計數值) MOVFF TIMER1_CNT_H,TMR1H MOVFF TIMER1_CNT_L,TMR1L 填入0XF82F->數->中斷發生->填入0XF82F->數->中斷發生->重覆動作。
發表於: 2006/6/27 12:21
|
|||
|
Re: 請問如何用中斷來控制頻率
|
||||
---|---|---|---|---|
中級會員
|
除四,是不是要再Timer1的T1CON暫存器裡設定?
我的中斷是用65536來減,例如:我要2ms的中斷, 就設定F82F給TMR1L與TMR1H。 如果這個形式我該如何設定?....謝謝
發表於: 2006/6/27 11:28
|
|||
|
Re: 請問如何用中斷來控制頻率
|
||||
---|---|---|---|---|
高級會員
|
1khz 就是1ms
1ms等於 200ns(以我的chip來看) 數5000次 如果是要產生一個完整的pulse 1khz 的話就折半2500次 就用二個register來計數就搞定了... 所以首先要先設定你的timer 多久interrupt一次 然後去算出你要的時間,時間到了再去做想做的事…
發表於: 2006/6/27 10:00
|
|||
|
Re: 請問如何用中斷來控制頻率
|
||||
---|---|---|---|---|
版主
|
那建議還是使用 Timer 1 配合中斷來產生。
1KHz = 1000uS 想辦法讓 Timer1 每1000uS中斷一次,若使用 4MHz Oscillator 那先除四後可得1uS timebase, 再用Timer1 計數 1000 後產生中斷就可以了。
發表於: 2006/6/27 9:22
|
|||
|
Re: 請問如何用中斷來控制頻率
|
||||
---|---|---|---|---|
中級會員
|
頻率範圍最大到1KHz
謝謝
發表於: 2006/6/26 20:17
|
|||
|
Re: 請問如何用中斷來控制頻率
|
||||
---|---|---|---|---|
版主
|
低素可以考慮用 Timer 的中斷來產生,高頻率的話可以使用 PWM module, 你的頻率範圍是多少?
發表於: 2006/6/26 18:14
|
|||
|