會員登陸
帳號:

密碼:

記住我



忘記密碼?

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


正在流覽:   1 名訪客





struct編譯正確但卻出現 unable to resolve identifier
新會員
註冊日期:
2014/10/12 10:59
所屬群組:
註冊會員
文章: 18
等級: 2; EXP: 97
HP : 0 / 49
MP : 6 / 830
離線


想問一下目前用MPLAB X V5.35開一個新專案,在寫struct時編譯正確


volatile union Timer1_Status_Struct
{
    
struct
    
{
        
unsigned int Timer_1ms_Flag : 1;
        
unsigned int Timer_10ms_Flag : 1;
        
unsigned int Timer_100ms_Flag : 1;
        
unsigned int Timer_1s_Flag : 1;
        
unsigned int UNKNOW5 : 1;
        
unsigned int UNKNOW6 : 1;
        
unsigned int UNKNOW7 : 1;
        
unsigned int UNKNOW8 : 1;
        
unsigned int UNKNOW9 : 1;
        
unsigned int UNKNOW10: 1;
        
unsigned int UNKNOW11: 1;
        
unsigned int UNKNOW12: 1;
        
unsigned int UNKNOW13: 1;
        
unsigned int UNKNOW14: 1;
        
unsigned int UNKNOW15: 1;
        
unsigned int UNKNOW16: 1;
    }
bit;
}
Timer1_Status_flag;


目前編譯成功,但是當我拿來使用時


Timer1_Status_flag
.bit.IAP_Power_OFF_Flag = 1;


在MPLAB X 就出現了紅底跟相關訊息「unable to resolve identifier」,

而且當我打上Timer1_Status_flag. 並使用Ctrl + \ 他是可以找到bit,

但是Timer1_Status_flag.bit. 並使用Ctrl + \ 他就找不到下其他選項了。

有人知道這邊該如何解決嗎?

5月26日 16:31:40
轉換PDF檔 列印


Re: struct編譯正確但卻出現 unable to resolve identifier
中級會員
註冊日期:
2005/10/28 00:53
來自 豐原 ; 大里
所屬群組:
註冊會員
文章: 62
等級: 6; EXP: 75
HP : 0 / 143
MP : 20 / 6184
離線
您好,
可以試試看以下,

volatile union Timer1_Status_Struct
{
struct
{
unsigned int Timer_1ms_Flag : 1;
unsigned int Timer_10ms_Flag : 1;
unsigned int Timer_100ms_Flag : 1;
unsigned int Timer_1s_Flag : 1;
unsigned int UNKNOW5 : 1;
unsigned int UNKNOW6 : 1;
unsigned int UNKNOW7 : 1;
unsigned int UNKNOW8 : 1;
unsigned int UNKNOW9 : 1;
unsigned int UNKNOW10: 1;
unsigned int UNKNOW11: 1;
unsigned int UNKNOW12: 1;
unsigned int UNKNOW13: 1;
unsigned int UNKNOW14: 1;
unsigned int UNKNOW15: 1;
unsigned int UNKNOW16: 1;
} bit;
}Timer1_Status_flag;

Timer1_Status_flag Timer1_Status_flag1 ;
unsigned int IAP_Power_OFF_Flag ;


Timer1_Status_flag1.bit.Timer_1ms_Flag = 1;
IAP_Power_OFF_Flag = Timer1_Status_flag1.bit.Timer_1ms_Flag ;

5月27日 14:22:17
轉換PDF檔 列印


Re: struct編譯正確但卻出現 unable to resolve identifier
資深會員
註冊日期:
2010/07/12 16:45
來自 台灣的某一個角落
所屬群組:
註冊會員
文章: 273
等級: 15; EXP: 45
HP : 0 / 361
MP : 91 / 10557
離線
把bit 改成 bits

應該就可以了吧。

5月27日 16:23:35
轉換PDF檔 列印


Re: struct編譯正確但卻出現 unable to resolve identifier
新會員
註冊日期:
2014/10/12 10:59
所屬群組:
註冊會員
文章: 18
等級: 2; EXP: 97
HP : 0 / 49
MP : 6 / 830
離線
剛剛看了一下拿來使用的東西打錯了

應該是這樣才對,複製程式後忘了改正

Timer1_Status_flag1
.bit.Timer_1ms_Flag = 1;


然後剛剛有測試一下把linwangco說的 bit改成bits,還真的很神奇的就不會出現我說的錯誤了。

不過為什麼他會對這個命名方式會做修正呢?
不是我叫什麼名稱應該都可以嗎?

5月27日 16:59:38
轉換PDF檔 列印


Re: struct編譯正確但卻出現 unable to resolve identifier
中級會員
註冊日期:
2014/05/28 13:30
所屬群組:
註冊會員
文章: 65
等級: 6; EXP: 95
HP : 0 / 148
MP : 21 / 2664
離線
bit在PIC是有被宣告的
跟int char unsigned這類的字是一樣的,
所以不能用bit去命名struct

5月27日 18:34:33
轉換PDF檔 列印


Re: struct編譯正確但卻出現 unable to resolve identifier
新會員
註冊日期:
2014/10/12 10:59
所屬群組:
註冊會員
文章: 18
等級: 2; EXP: 97
HP : 0 / 49
MP : 6 / 830
離線
了解了~
感謝你

5月28日 09:35:55
轉換PDF檔 列印






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

[進階搜尋]


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