Re: 可變電阻 接 AN0 (PIC18F4480) 問題
|
||||
---|---|---|---|---|
初級會員
|
參照:
這樣的方法我已經試過了 可是效果還是一樣 這個腳本身還是有個 2V 的電壓 還是我有漏掉什麼? 謝謝
發表於: 2008/1/9 18:02
|
|||
|
Re: 可變電阻 接 AN0 (PIC18F4480) 問題
|
||||
---|---|---|---|---|
初級會員
|
參照:
我已經試過這樣的方法了 而我確定不是 OP 的問題 如果我沒有把 PIC 得 AN0 腳接上去 我的訊號是很乾淨的 不管我是不是給她雙電源 還是 單電源 都是一樣的結果
發表於: 2008/1/5 13:19
|
|||
|
可變電阻 接 AN0 (PIC18F4480) 問題
|
||||
---|---|---|---|---|
初級會員
|
大家好
我想請問一下各位 我現在有個可變電阻,接到 PIC18F4480 的 AN0 腳當作 ADC 的 input 腳。我後來發現,在接上這隻腳的時候,可變電阻量出來的電壓會因為這隻腳的關係而被提高。自己去量 AN0 這隻腳的電壓,大概在 2V 另外,我發現有只要可變電阻的電壓大於 2.5V 時就比較不會受到 AN0 腳的影響。 所以我用了一個 OP (ST LM324) 把可變電阻的電壓值接在 OP 的 non-inverting input (+),把 inverting input (-) 腳位和 Output 腳接在一起,在接到 AN0 腳位,這樣的話,訊號會在一個範圍中跳來跳去,感覺有點像是高頻的雜訊 (不確定) --> 這現象不是一直都看的到,只有在某個範圍內比較明顯,有些就看起來很正常 不知道有沒有人遇到類似這樣的問題 不管是第一個 (準為跑掉的) 或是接一個 OP 會造成有雜訊 還有,有沒有辦法解決這樣的問題? 謝謝
發表於: 2008/1/3 15:46
|
|||
|
關於石英震盪器的問題
|
||||
---|---|---|---|---|
初級會員
|
各位
再次麻煩大家一下 我現在用的是 EVM APP001 Rev. 2 用的是 PIC18F4480 的晶片 我現在用 TIMER2 想要讓他中斷,每中斷一次,我其中一隻腳會反向 (1-->0 或 0-->1) 我已經設好 PR2 的值 不過,如果我想要讓他每一次 clock 的時間(PR2=1),讓他反向,他時間就不對,都會停在 10uS 左右,不管我讓他多短。現在用的石英震盪器是 16Mhz,他應該還會經過 Fosc/4 所以應該是 4 Mhz,可是理論上一個 clock 時間是0.25uS。我不知道是不是有什麼硬體上面的限制嗎? 還是為什麼沒有辦法讓他比 10uS 還要小 以下是我的程式碼 #pragma config BOREN=OFF, BORV = 2, PWRT=ON, WDT=OFF, LVP=OFF #pragma config OSC = HS //宣告函式原型 void Init_TMR2(void); void timer2_isr (void); //宣告並安排中斷執行程式記憶體位置 #pragma code low_vector=0x18 void low_interrupt (void) { _asm GOTO timer2_isr _endasm } #pragma code #pragma interruptlow timer2_isr int i; void timer2_isr (void) { PIR1bits.TMR2IF = 0; PORTD=PORTD^0xff; PORTC=PORTC^0xff; } void main (void) { PORTD = 0x00; TRISD = 0; PORTC = 0x00; TRISC = 0; PR2 = 40; Init_TMR2(); INTCONbits.PEIE = 1; // 開啟周邊中斷功能 INTCONbits.GIE = 1; // 開啟全域中斷控制 while (1); } void Init_TMR2 (void){ OpenTimer2(T2_POST_1_1 & T2_PS_1_1); PIE1bits.TMR2IE=1; PIR1bits.TMR2IF = 0; // 清除中斷旗標 } 有沒有什麼解決方法? 謝謝
發表於: 2007/12/23 18:39
|
|||
|
Re: 關於使用 internal oscillator
|
||||
---|---|---|---|---|
初級會員
|
各位
我把我的 interrupt 改成用 TIMER2 設定 我現在感覺就是 我想要在每一個 interrupt 發生的時候, 某幾隻腳會HIGH LOW HIGH LOW 另外,我用 EVM:APP001 Rev.2 這個版子,理論上上面有個 16MHz 的石英震盪器,所以我想要讓他在每次 interrupt (1 clock) 就改變,可是我現在量出來的都大概是 9uS。 放上有我的 code //********************************************************** //* Ex9_1_TMR1_INT.c //* 設計一個0.5秒讓 PORTD 的 LED 所顯示的二進位數字自動加一的程式 //********************************************************** #include <p18f4480.h> //納入微控制器定義檔 #include <timers.h> //納入計時器函式庫定義檔 // 結構位元定義 #pragma config BOREN=OFF, BORV = 2, PWRT=ON, WDT=OFF, LVP=OFF #pragma config OSC = HS #define TMR2_VAL 256-10//65536-16384 // Timer1 設定為 500ms 中斷一次 //宣告函式原型 void Init_TMR2(void); void timer2_isr (void); //宣告並安排中斷執行程式記憶體位置 #pragma code low_vector=0x18 void low_interrupt (void) { _asm GOTO timer2_isr _endasm } #pragma code #pragma interruptlow timer2_isr int i; void timer2_isr (void) { PIR1bits.TMR2IF = 0; // 清除中斷旗標 WriteTimer2(TMR2_VAL); // 當將計數器觸發次數歸零寫入預設值0 PORTD=PORTD^0xff; PORTC=PORTC^0xff; } void main (void) { PORTD = 0x00; TRISD = 0; PORTC = 0x00; TRISC = 0; i = 0; Init_TMR2(); // 初始化設定Timer1函式 INTCONbits.PEIE = 1; // 開啟周邊中斷功能 INTCONbits.GIE = 1; // 開啟全域中斷控制 while (1); // 無窮迴圈 } void Init_TMR2 (void){ OpenTimer2(T2_POST_1_1 & T2_PS_1_1); PR2=0xff; PIE1bits.TMR2IE=1; WriteTimer2(TMR2_VAL); // 寫入預設值 PIR1bits.TMR2IF = 0; // 清除中斷旗標 } 附上也有我的版子 不知道是不是要調什麼 jumper? 麻煩各位幫幫忙 謝謝 附件: http://img205.imageshack.us/img205/8773/img0284dm7.jpg
發表於: 2007/12/21 18:55
|
|||
|
Re: 關於使用 internal oscillator
|
||||
---|---|---|---|---|
初級會員
|
參照:
請問,你說的那個值,我不太了解是哪一個值。指令週期的時間是用哪一個 Register 設定的? 參照:
請問,關於這個,如何在把 Clock 往上提? 我會再另外用 Timer2 試試看 謝謝
發表於: 2007/12/19 17:26
|
|||
|
Re: 關於使用 internal oscillator
|
||||
---|---|---|---|---|
初級會員
|
恩,我了解
我之前看就知道沒有辦法做到 20 mS 所以我想要用 interrupt 達到每 5uS 可以讓其中一個 IO 轉變 可是我目前只做得到 17uS 就是說,我想要做個PWM,duty cycle 是5uS 週期是 10uS 不知道是不是我設定哪裡錯 謝謝 這樣清楚我想要的嗎?
發表於: 2007/12/18 15:44
|
|||
|
Re: 關於使用 internal oscillator
|
||||
---|---|---|---|---|
初級會員
|
我現在做到的是
他只能到達 17uS 我不了解是不是哪裡沒有設定好 我想 8Mhz 應該可以做到 0.5uS 沒有錯,只是,我就是無法做到 能不能麻煩各位一下 我對 PIC 是新手,不懂還要去作其他設定 再次謝謝 還有,我需要的 PWM 週期是 20 mS PWM Module 做得到嗎?
發表於: 2007/12/18 14:45
|
|||
|
Re: 關於使用 internal oscillator
|
||||
---|---|---|---|---|
初級會員
|
恩,謝謝回答
照理來講,如果用 internal oscillator, 可以調到 8Mhz, 不是就 5uS 並不難做到。還是我觀念錯了? 另外,我有用過 PWM Module, 不過因為我將來要調整他的週期, PWM Module 的週期無法拉到我希望的長度,所以考慮自己寫 PWM。 另外,利用 Timer2 和利用 Timer1 的差別是什麼? 謝謝 最後,那些 Configuration Bits, 我如何知道我的設定已經調整好到我想要的? 意思是說,internal oscillator 該調哪些? 再次謝謝
發表於: 2007/12/17 17:56
|
|||
|