會員登陸
帳號:

密碼:

記住我



忘記密碼?

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


正在流覽:   1 名訪客



(1) 2 »


有關 MPLAB XC8 使用陣列資料問題??
新會員
註冊日期:
2016/10/12 11:28
所屬群組:
註冊會員
文章: 2
等級: 1; EXP: 2
HP : 0 / 0
MP : 0 / 3
離線
各位前輩,小弟這邊有個問題想要請教一下,
目前小弟使用 PIC1826K40 / MPLAB X IDE+XC8 v1.37 compiler / Debug 使用PICKit3,
我有一筆陣列資料放入常態變數,會發生資料無法讀取的問題,不知式語法上的錯誤還是Tool有哪些設定忽略呢??

以下是小弟的程式:
static const unsigned char data_1[2]={0x03,0x01};
static unsigned char Data[2]=0;

void AVS_PO6030(void) //SENSOR
{
unsigned int j;

for(j=0;j<10;j++)//148
{
Data[0] = data_1[0];
Data[1] = data_1[1];
I2CAVSWriter1(PO6030,Data[0],Data[1]);
//void I2CAVSWriter1(unsigned char Device_ID,unsigned char addr_index,unsigned char data_index)
}
}

Debug 執行的結果:
Data[0] = 0
Data[1] = 0

附加檔案:



jpg  1826K40 QA.jpg (253.41 KB)
49855_57fdd4d2f11a9.jpg 1289X745 px

2016/10/12 14:25
轉換PDF檔 列印


Re: 有關 MPLAB XC8 使用陣列資料問題??
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14379
等級: 72; EXP: 87
HP : 1078 / 1796
MP : 4793 / 74604
離線
看不出問題在哪?

建議將 static 的宣告拿掉,由其是那 static const 的宣告。既然是常數了為何加上 static ?

2016/10/13 10:00
轉換PDF檔 列印


Re: 有關 MPLAB XC8 使用陣列資料問題??
新會員
註冊日期:
2016/10/12 11:28
所屬群組:
註冊會員
文章: 2
等級: 1; EXP: 2
HP : 0 / 0
MP : 0 / 3
離線
感謝版大的回覆,
我現在的問題很單純,我現在要執行一段程式,是要將

const unsigned char data_1[2]={0x03,0x01}; 陣列裡面的資料放到
unsigned char Data[2]=0;裡面,但在 MPLAB X IDE V3.40 使用 XC8 compiler V1.37 執行的結果卻是0,

按照我的語法執行的結果應該是
Data[0]=0x03;
Data[1]=0x01;

之前,使用 MPLAB8 IDE for HI-Tech compiler 是可行的,因為使用新 IC PIC 18F26K40 才使用 MPLAB X,不知是否相容性的問題呢?

附加檔案:



jpg  debug tool is PICkit3.jpg (538.23 KB)
49855_57ff62b64bc63.jpg 1652X1015 px

2016/10/13 18:32
轉換PDF檔 列印


Re: 有關 MPLAB XC8 使用陣列資料問題??
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14379
等級: 72; EXP: 87
HP : 1078 / 1796
MP : 4793 / 74604
離線
明天早上到公司的時候再來測試一下。

2016/10/13 19:56
轉換PDF檔 列印


Re: 有關 MPLAB XC8 使用陣列資料問題??
新會員
註冊日期:
2016/10/12 11:14
所屬群組:
註冊會員
文章: 4
等級: 1; EXP: 21
HP : 0 / 5
MP : 1 / 28
離線
請問版主有結果嗎?
我們也遇到一樣的問題~

同樣的語法PIC18F26K20
MPLAB X IDE V3.40 使用 MPLABC18 compiler V3.47 卻是正常

但因為PIC18F26K20沒有 UQFN小封裝

PIC18F26K40 又不支援 MPLABC18 compiler V3.47
一整個卡住~

2016/10/14 18:47
轉換PDF檔 列印


Re: 有關 MPLAB XC8 使用陣列資料問題??
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14379
等級: 72; EXP: 87
HP : 1078 / 1796
MP : 4793 / 74604
離線
用 XC8 v1.37 及 Simulator 來執行。

在我的 X IDE 的結果是正確的。

附加檔案:



jpg  擷取.JPG (103.65 KB)
16_58059e085fade.jpg 672X571 px

2016/10/18 11:59
轉換PDF檔 列印


Re: 有關 MPLAB XC8 使用陣列資料問題??
新會員
註冊日期:
2016/10/12 11:14
所屬群組:
註冊會員
文章: 4
等級: 1; EXP: 21
HP : 0 / 5
MP : 1 / 28
離線
版主您好:
用 XC8 v1.37 及 Simulator 來執行~ 是正確的
我們測試也是這樣.. 所以語法應該沒有問題

但實際燒入18F26K40 就都會為0
這樣會是MCU本身有BUG嗎?

2016/10/18 15:25
轉換PDF檔 列印


Re: 有關 MPLAB XC8 使用陣列資料問題??
高級會員
註冊日期:
2014/12/02 11:55
所屬群組:
註冊會員
文章: 82
等級: 8; EXP: 0
HP : 0 / 175
MP : 27 / 1853
離線
引用:

rj841135 寫道:
版主您好:
用 XC8 v1.37 及 Simulator 來執行~ 是正確的
我們測試也是這樣.. 所以語法應該沒有問題

但實際燒入18F26K40 就都會為0
這樣會是MCU本身有BUG嗎?


我覺得是編譯器有問題,我之前也碰到一個奇怪的問題,程式不是照著我要的結果去跑(我用C語言撰寫),結果用debug模式單步執行去看組合語言怎麼跑的,結果組合語言那邊的情況異常,後來我在我異常的那行程式碼那邊,故意換行,或是多一個NOP,結果就好了.....

2016/10/18 17:03
轉換PDF檔 列印


Re: 有關 MPLAB XC8 使用陣列資料問題??
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14379
等級: 72; EXP: 87
HP : 1078 / 1796
MP : 4793 / 74604
離線
這問題有點棘手,我測試是正常得如下圖所示 (Simulation) 因為我沒有 K40 無法進行測試。
可否間看一下 Program Memory 視窗看一下反組譯出來的 Code,看是否在其位址上有正確的編譯資料。

再者可以用 Program Read 方式將 K40 的 Flash 資料讀回 X IDE 下比對看看是否有差異。

網站上最新版的 XC8 是 v.1.38 部支會不會有此問題?

http://www.microchip.com/mplab/compilers

附加檔案:



jpg  擷取.JPG (166.43 KB)
16_5806edf4887db.jpg 1112X775 px

2016/10/19 11:51
轉換PDF檔 列印


Re: 有關 MPLAB XC8 使用陣列資料問題??
高級會員
註冊日期:
2008/04/13 16:02
所屬群組:
註冊會員
文章: 104
等級: 9; EXP: 20
HP : 0 / 205
MP : 34 / 6148
離線
有試過最佳化的影響嗎?
可以試試看調整一下,例如整個關掉來看看結果

我之前有遇過預設值是1,結果浮點數計算在debug下看值會錯
(不過是XC32下...)

2016/10/26 11:47
轉換PDF檔 列印



(1) 2 »



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

[進階搜尋]


搜尋
Microchip連結

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