會員登陸
帳號:

密碼:

記住我



忘記密碼?

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


正在流覽:   1 名訪客





PIC16F18345_C語言嵌入組語請教
新會員
註冊日期:
2018/09/05 15:01
所屬群組:
註冊會員
文章: 2
等級: 1; EXP: 2
HP : 0 / 0
MP : 0 / 1
離線
想請問一下,目前使用asm在c語言中嵌入,但編譯後出現錯誤,請問這部分還有哪裡的問題??謝謝!!

附加檔案:



gif  c語言嵌入組語.gif (31.21 KB)
73916_5c74aa78e83f3.gif 582X576 px

2月26日 11:01:40
轉換PDF檔 列印


Re: PIC16F18345_C語言嵌入組語請教
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14737
等級: 73; EXP: 42
HP : 1086 / 1810
MP : 4912 / 79729
離線
無法判定是否是嵌入式組語上的錯誤,請在原始程式裡加入行號的顯示,如下圖所示:
只要將數標移到行號顯示的位置,按下鼠標右鍵即可選擇。

我沒試過你這種寫法,PIC16F18xx 有支援 Reset 指令,可以將這一段改成 asm "reset"。

在嵌入式組語的語法上,XC8 支援兩種些法:
1. asm(“instruction”); 用於單行的嵌入式組語
2. #asm … #endasm ; 區塊式的嵌入式組語

所以改成底下的語法試試:

asm ("PAGESEL RESET_VECTOR");
asm ("goto RESET_VECTOR");

附加檔案:



jpg  擷取.JPG (14.19 KB)
16_5c74ca9901b7d.jpg 371X214 px

2月26日 13:11:36
轉換PDF檔 列印


Re: PIC16F18345_C語言嵌入組語請教
資深會員
註冊日期:
2004/07/12 13:55
所屬群組:
註冊會員
文章: 274
等級: 15; EXP: 48
HP : 0 / 362
MP : 91 / 15735
離線
不知這個能不能用,好像是用在C30中內嵌組語.
asm volatile ("goto %0" : : "r"(addr));

2月26日 19:18:37
轉換PDF檔 列印


Re: PIC16F18345_C語言嵌入組語請教
資深會員
註冊日期:
2006/02/10 09:49
所屬群組:
註冊會員
文章: 298
等級: 16; EXP: 14
HP : 0 / 378
MP : 99 / 14701
離線
為何不直接用 goto ?


new_reset_vector
:

main()
{
    if(
your_condition)
    {
         
goto new_reset_vector;
    }
}

2月27日 09:00:30
轉換PDF檔 列印






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

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project