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
|
|||
|
Re: 請問18f452(4515)的高、低中斷優先程式可以有幾個?
|
||||
---|---|---|---|---|
高級會員
|
High Vector 程式碼 有 3 個 if 判斷式
check list file to 確定沒有大到 0x0018h
發表於: 2005/8/12 23:37
|
|||
IWC
IWC JL Rolex PP 有點距離 越來越遠 |
||||
|
請問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
|
|||
|