Re: 關於使用 internal oscillator
|
||||
---|---|---|---|---|
初級會員
|
各位
麻煩大家 急需這部分 不知道是不是忘記設定什麼 還是哪裡設定錯了? 再次謝謝
發表於: 2007/12/17 17:21
|
|||
|
Re: 關於使用 internal oscillator
|
||||
---|---|---|---|---|
初級會員
|
#pragma config OSC = HS, BOREN=OFF, BORV = 2, PWRT=ON, WDT=OFF, LVP=OFF
不好意思 上面忘記貼上去
發表於: 2007/12/17 13:59
|
|||
|
Re: 關於使用 internal oscillator
|
||||
---|---|---|---|---|
初級會員
|
謝謝你的回覆
我剛剛試了 其實我已經改過一些設定 可是我跑出來的卻還不是我想要的東西 不知道有沒有什麼其他的我忘記設定 我想要讓她跑 8Mhz 可是我量出來的大概只有 38microseconds 差很多 謝謝各位
發表於: 2007/12/17 11:18
|
|||
|
關於使用 internal oscillator
|
||||
---|---|---|---|---|
初級會員
|
各位
想請問一下, 我目前用的是 PIC18F4480 我希望用他內建的震盪器 目前已經設定 OSCCON 的值 理論上,我希望他有 8MHz 且我開了 PLL 功能 可是他跑出來,我量他的時間,大概只有 17us 我一直不知道如何去調他 不知道各位有沒有辦法幫幫忙? 我的程式碼如下: #include <p18f4480.h> #include <timers.h> // 結構位元定義 #pragma config BOREN=OFF, BORV = 2, PWRT=ON, WDT=OFF, LVP=OFF #define TMR1_VAL 65536-1//65536-16384 //宣告函式原型 void Init_TMR1(void); void timer1_isr (void); //宣告並安排中斷執行程式記憶體位置 #pragma code low_vector=0x18 void low_interrupt (void) { _asm GOTO timer1_isr _endasm } #pragma code #pragma interruptlow timer1_isr int i; void timer1_isr (void) { PIR1bits.TMR1IF = 0; // 清除中斷旗標 WriteTimer1(TMR1_VAL); // 當將計數器觸發次數歸零寫入預設值 PORTD=PORTD^0xff; // 遞加PORTD PORTC=PORTC^0xff; } void main (void) { PORTD = 0x00; TRISD = 0; PORTC = 0x00; TRISC = 0; Init_TMR1(); // 初始化設定Timer1函式 INTCONbits.PEIE = 1; // 開啟周邊中斷功能 INTCONbits.GIE = 1; // 開啟全域中斷控制 while (1); // 無窮迴圈 } void Init_TMR1 (void){ T1CON = 0b10000101; TMR1H=0; TMR1L=0; //OSCCON = 0b01110011; OSCCON=0b01110000; OSCTUNE=0b01001111; PIE1bits.TMR1IE=1; WriteTimer1(TMR1_VAL); // 寫入預設值 PIR1bits.TMR1IF = 0; // 清除中斷旗標 }
發表於: 2007/12/14 16:22
|
|||
|