Re: 請問18f452(4515)的高、低中斷優先程式可以有幾個?
|
||||
---|---|---|---|---|
新會員
|
回報iiwwcc大大:
我不用高低優先權的中斷法,改用正常的中斷功能(IPEN=0),然後在中斷設定裡一次把四個中斷寫在一起(程式如下),也有發生同樣的情形,但是改過LKR檔的 CODEPAGE NAME=vectors START=0x0 END=0x29 CODEPAGE NAME=page START=0x2A END=0xBFFF 改成 CODEPAGE NAME=vectors START=0x0 END=0x39 CODEPAGE NAME=page START=0x3A END=0xBFFF 就可以COMPILE。 雖然不懂為什麼這樣改就可以過,但是它就是過了,謝謝iiwwcc的指點。 PS: 如果有高人知道為什麼要這樣改的,可否說明一下,或是指點一下從哪裡可以找到相關的資料。謝謝!! 中斷宣告: #pragma code interrupt_vector_section=0x0008 void interrupt_vector(void) { if(INT0IF==1){_asm goto intrpt_INT0 _endasm} if(INT1IF==1){_asm goto intrpt_INT1 _endasm} if(INT2IF==1){_asm goto intrpt_INT2 _endasm} if(TMR2IF==1){_asm goto intrpt_TMR2 _endasm} } #pragma code
發表於: 2005/8/14 2:27
|
|||
|
請問版主USB讲义什么时候能放上下载?
|
||||
---|---|---|---|---|
新會員
|
等待
發表於: 2005/8/13 19:02
|
|||
|
Re: 請問N81和N82如何處理啊
|
||||
---|---|---|---|---|
高級會員
|
PIC18F6520
希望不會太困難~~因為案子有需要~~~ 謝謝幫忙歐~~哈哈
發表於: 2005/8/13 9:56
|
|||
|
Re: 請問內部RC四倍頻怎麼弄?
|
||||
---|---|---|---|---|
資深會員
|
謝謝你的回答
我的板子跟IC放在代理商那裡讓他測試 過幾天我再去跟他拿回來試試 不過我記得我以前試PIC18F4320時(四隻腳的震盪器) 我用的也不是除錯模式 而是直接燒一個走馬燈程式進去 拔掉ICD2接頭就可以了 不必切除電源重新送電 但我前幾天用相同的方式 測試18F8627跟18F8621卻都行不通 差別只是這兩顆80pin的IC我用2隻腳的震盪器 所以我才在想是否要4隻腳的震盪器(外部頻率輸入) 這樣的方式才能用4倍頻
發表於: 2005/8/13 8:36
|
|||
|
Re: 請問18f452(4515)的高、低中斷優先程式可以有幾個?
|
||||
---|---|---|---|---|
高級會員
|
High Vector 程式碼 有 3 個 if 判斷式
check list file to 確定沒有大到 0x0018h
發表於: 2005/8/12 23:37
|
|||
IWC
IWC JL Rolex PP 有點距離 越來越遠 |
||||
|
Re: 請問一個問題
|
||||
---|---|---|---|---|
新會員
|
其實我真正要做的是
假如輸出信號為0態的話輸出為1/8週期為low的訊號 假如輸出信號為1態的話輸出為3/8週期為high的訊號 經由資料為0或1來判斷輸出不同的波形 如果單靠pwm的輸出能在這兩種波形做交替輸出嗎 還有就是我只做一隻腳的輸出應該不用那麼多的周邊電路 有這種基本I/O的電路圖嗎 麻煩大大在幫我解答一下 謝謝
發表於: 2005/8/12 23:16
|
|||
|
請問18f452(4515)的高、低中斷優先程式可以有幾個?
|
||||
---|---|---|---|---|
新會員
|
請問高手:
我現在寫的程式有用到三個外部中斷功能(INT0~2),和計時器二中斷,我將三個外部中斷設為高優先,計時器二設為低優先,程式一直compile不過,請問是哪裡有問題? 以下是我寫的中斷程式碼。 中斷服務宣告部分: void intrpt_INT0(void); void intrpt_INT1(void); void intrpt_INT2(void); void intrpt_TMR2(void); #pragma code high_vector_section=0x0008 void high_vector(void) { if(INT0IF==1){_asm goto intrpt_INT0 _endasm} if(INT1IF==1){_asm goto intrpt_INT1 _endasm} if(INT2IF==1){_asm goto intrpt_INT2 _endasm} } #pragma code #pragma code low_vector_section=0x0018 void low_vector(void) { _asm goto intrpt_TMR2 _endasm } #pragma code 中斷程式部分: #pragma interruptlow intrpt_TMR2 void intrpt_TMR2(void) { 省略… } #pragma interrupt intrpt_INT0 void intrpt_INT0(void) { 省略… } #pragma interrupt intrpt_INT1 void intrpt_INT1(void) { 省略… } #pragma interrupt intrpt_INT2 void intrpt_INT2(void) { 省略... } 所有中斷程式我都測試過,都可以執行。 若在高優先的宣告裡只有宣告一個外部中斷功能(即高、低優先程式各有一個服務程式),程式compile可以過,但是在高優先權宣告裡宣告三個外部中斷功能,則會compile不過,出現的錯誤訊息為: MPLINK 3.92, Linker Copyright (c) 2005 Microchip Technology Inc. Error - section 'low_vector_section' can not fit the absolute section. Section 'low_vector_section' start=0x00000018, length=0x00000006 Errors : 1 請問這是什麼樣的問題啊,有什麼方法可以解決這種使用多個中斷功能的問題 ? 請高手幫幫忙,謝謝!!
發表於: 2005/8/12 22:40
|
|||
|
Re: 請問N81和N82如何處理啊
|
||||
---|---|---|---|---|
版主
|
請指明那一顆PIC。
發表於: 2005/8/12 18:06
|
|||
|
請問N81和N82如何處理啊
|
||||
---|---|---|---|---|
高級會員
|
請問這兩個是直接設定SFR
還是要用軟體下去改呢?? 謝謝幫忙~~謝謝感恩
發表於: 2005/8/12 18:03
|
|||
|