會員登陸
帳號:

密碼:

記住我



忘記密碼?

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


正在流覽:   1 名訪客





compiler顯示的錯誤訊息無法解決
中級會員
註冊日期:
2014/09/29 12:04
所屬群組:
註冊會員
文章: 65
等級: 6; EXP: 95
HP : 0 / 148
MP : 21 / 1366
離線
嗨,各位好。小弟正在編譯一個程式,然後有幾個bug怎麼解決都解決不了,故PO上網想跟前輩們討論。

IDE: X v3.60
PIC: 16F1824
compiler: XC8 v1.42

問題1:
引用:
I2C.c:27: warning: (373) implicit signed to unsigned conversion


if(I2C_SendAddress(address+1) == Failure) return Failure;    //This line goes wrong


XC8手冊裡提到:(373) implicit signed to unsigned conversion
An unsigned type was expected where a signed type was given and was implicitly cast to unsigned, for example:
unsigned int foo = -1;
/* the above initialization is implicitly treated as:
unsigned int foo = (unsigned) -1; */

但我的情況跟手冊裡提到的好像不是同一個情況。

問題2:
引用:
difficult.c:46: warning: (374) missing basic type; int assumed
difficult.c:46: error: (984) type redeclared
difficult.c:46: error: (1098) conflicting declarations for variable "OTHER_FLAGbits" (difficult.c:45)

main.c

OTHER_FLAG OTHER_FLAGbits
;
OTHER_FLAGbits.first_interrupt = 0    //3個錯誤都是這行;


這邊我覺得最莫名其妙,我只有在header.h裡面宣告結構:
header.h:

typedef struct
{
    
volatile unsigned first_interrupt :1;
    
unsigned UT_EVT :1;
    
unsigned OT_EVT :1;
    
unsigned OV_EVT :1;
    
unsigned VLPF_EVT :1;
    
unsigned OC0_EVT :1;
    
unsigned CHG_STA :1;
    
unsigned DHG_STA :1;
}
OTHER_FLAG;

然後在main.c裡面的全域變數裡再宣告變數
main.c

OTHER_FLAG OTHER_FLAGbits
;
OTHER_FLAGbits.first_interrupt = 0    //3個錯誤都是這行;

不曉得為什麼會出現重複宣告、宣告衝突與374。

請有經驗的前輩給小弟一點提示,謝謝。

10月13日 14:47:11
轉換PDF檔 列印


Re: compiler顯示的錯誤訊息無法解決
中級會員
註冊日期:
2014/09/29 12:04
所屬群組:
註冊會員
文章: 65
等級: 6; EXP: 95
HP : 0 / 148
MP : 21 / 1366
離線
大家好,我找到第一個問題的解決方式了。
使用

if(I2C_SendAddress(++address) == Failure) return Failure; // Read slave

而不是

if(I2C_SendAddress(address+1) == Failure) return Failure; // Read slave


想請教前輩們,為什麼第二種方式compiler無法成功?我記得在標準C裡parameter可以帶入statement啊?

10月13日 16:31:47
轉換PDF檔 列印


Re: compiler顯示的錯誤訊息無法解決
中級會員
註冊日期:
2014/09/29 12:04
所屬群組:
註冊會員
文章: 65
等級: 6; EXP: 95
HP : 0 / 148
MP : 21 / 1366
離線
大家好,第二個問題我也解決了。

在仔細重看了code的情況下,發現少打了一個又括弧},導致這個問題發生。

謝謝各位,打擾前輩們了。

10月16日 10:11:47
轉換PDF檔 列印






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

[進階搜尋]


搜尋
Microchip連結

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