會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





PIC18F2331編譯
新會員
註冊日期:
2009/08/24 17:20
所屬群組:
註冊會員
文章: 13
等級: 2; EXP: 38
HP : 0 / 34
MP : 4 / 1086
離線
大家好:
有點久沒碰8-bit的MCU了,剛好最近手邊拿到一顆PIC18F2331,想說來寫程式試試看,但在編譯的時候出現了附件上的Fail,想麻煩大家幫忙看看是什麼原因,謝謝大家了

附加檔案:



jpg  Fail.JPG (122.17 KB)
6027_5ea3b19a31b54.jpg 1553X567 px

4月25日 11:42:39
轉換PDF檔 列印


Re: PIC18F2331編譯
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 15045
等級: 73; EXP: 89
HP : 1093 / 1822
MP : 5015 / 85626
離線
說真的,你這問題還蠻奇怪的? 編譯程式及Linker 都正常使用 C18 的設定。但最後怎會調出 PICC18 CHIPINFO 的編譯器呢?

CHIPINFO 只使用在 Hi-TECH PICC18 及 XC8 裡,主要是提共 MCU 的連結用訊息。而 C18 只會使用 lkr 的連結描述檔。

請再檢查一下你的專案設定是否只使用 C18 v3.47 來做編譯。

4月27日 11:43:23
轉換PDF檔 列印


Re: PIC18F2331編譯
新會員
註冊日期:
2009/08/24 17:20
所屬群組:
註冊會員
文章: 13
等級: 2; EXP: 38
HP : 0 / 34
MP : 4 / 1086
離線
謝謝版大,軟體重灌後已解決問題

但目前遇到另一個問題
就是在寫Timer中斷的時候用以下的方式無法進到中斷副程式(timer0_isr(void))

#pragma code high_vector=0x08
void high_interrupt (void)
{
_asm GOTO timer0_isr _endasm
}

#pragma code

#pragma interrupt timer0_isr
void timer0_isr (void)
{
INTCONbits.TMR0IF = 0;
}

但是如過是在while(1)裡面寫if(INTCONbits.TMR0IF==1) timer0_isr();
這樣就可以正常進到副程式裡面去

用低優先0x18的寫法也試過了,也改過TMR0IP了,但用第一種寫法就是不會進去,覺得很奇怪,是寫法有誤嗎?

5月06日 18:52:51
轉換PDF檔 列印


Re: PIC18F2331編譯
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 15045
等級: 73; EXP: 89
HP : 1093 / 1822
MP : 5015 / 85626
離線
除了中斷函數的設定外,請確認幾個地方是否有做到設定:

1. RCONbits.IPEN=1; // Enable Interrupt Priority bit
IPR1bits.TMR0IP=1; // Set Timer0for High Priority
INTCONbits.GIEH=1; // Enable High Priority Interrupt

2. Timer0 的初始設定?

參考一下 W401 教育訓練第二天的教材,練習 5-2 有詳細的中斷使用說明及範例程式。

5月07日 17:30:17
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project