• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 請問18f452(4515)的高、低中斷優先程式可以有幾個?
#4
版主
版主


查看用戶資訊
基本上 0x0008 的位置只能讓你擺一個中斷向量轉移的指令,儘量不要不其它的敘述在裡面,還有使用 goto 指令時要很小心,以你的例子很容易就會跳到一個函數裡造成return回返的堆疊錯誤。
你可以改成底下的方式,參考看看。
#pragma code interrupt_vector_section=0x0008

void interrupt_vector(void)
{                                  
     
_asm                     //begin in-line assembly
     
goto isr_high                //go to isr_high function
     
_endasm                     //end in-line assembly
}
#pragma code

//************************************************

#pragma interrupt isr_high 

void isr_high(void)
{
    if(
INT0IF==1)
    { ....  
    
INT0IF=0;
    }
    
    if(
INT1IF==1
    { ....
    
INT1IF=0;
    }
    
    if(
INT2IF==1
    { ....
    
INT2IF=0;
    }
    
    if(
TMR2IF==1
    { ....
    
TMR2IF=0;
    }
}


發表於: 2005/8/16 15:31
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問18f452(4515)的高、低中斷優先程式可以有幾個?
#3
新會員
新會員


查看用戶資訊
回報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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問18f452(4515)的高、低中斷優先程式可以有幾個?
#2
高級會員
高級會員


查看用戶資訊
High Vector 程式碼 有 3 個 if 判斷式

check list file to 確定沒有大到 0x0018h

發表於: 2005/8/12 23:37
IWC
IWC
JL
Rolex


PP
有點距離
越來越遠
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請問18f452(4515)的高、低中斷優先程式可以有幾個?
#1
新會員
新會員


查看用戶資訊
請問高手:
我現在寫的程式有用到三個外部中斷功能(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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------