會員登陸
帳號:

密碼:

記住我



忘記密碼?

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


正在流覽:   1 名訪客





dspic33fj系列建立const陣列問題.
資深會員
註冊日期:
2004/07/12 13:55
所屬群組:
註冊會員
文章: 263
等級: 15; EXP: 17
HP : 0 / 354
MP : 87 / 14772
離線
我有四個整數table
const int table1[1500];
const int table2[1500];
const int table3[1500];
const int table4[1500];
想問要如何撰寫程式/或設定,使得四個table在同一psvpage,而沒有跨頁的問題?

7月19日 20:47:09
轉換PDF檔 列印


Re: dspic33fj系列建立const陣列問題.
資深會員
註冊日期:
2007/06/05 21:45
所屬群組:
註冊會員
文章: 1007
等級: 28; EXP: 8
HP : 0 / 677
MP : 335 / 22499
離線
Table Page Address Pointer Register跟
Program Memory Visibility Page Address Pointer Register
都只有 8 bits,別再折騰了...

說說你真正的要求/目的...

另外一提:
如果你要取四個table同一個offset
又因為四個table不在同page,照成費時問題...
offset 100
table1[100], table2[100], table3[100], table4[100]
offset 1200
table1[1200], table2[1200], table3[1200], table4[1200]
取相同offset,因不在同page而耗時

如果改成這樣 table[1500][4]
offset 100,
table[100][0], table[100][1], table[100][2], table[100][3]
offset 1200,
table[1200][0], table[1200][1], table[1200][2], table[1200][3]
這樣同offset就都在一起,速度應該可以加快...

7月19日 21:52:49
轉換PDF檔 列印


Re: dspic33fj系列建立const陣列問題.
資深會員
註冊日期:
2009/04/07 13:30
所屬群組:
註冊會員
文章: 171
等級: 12; EXP: 13
HP : 0 / 278
MP : 57 / 7753
離線
編譯器為 XC16時
請試試以下...

__psv__ int __attribute__((space(psv))) table1[1500] = { 1, 1, 1, 1, 1};
__psv__ int __attribute__((space(psv))) table2[1500] = { 2, 2, 2, 2, 2};
__psv__ int __attribute__((space(psv))) table3[1500] = { 3, 3, 3, 3, 3};
__psv__ int __attribute__((space(psv))) table4[1500] = { 4, 4, 4, 4, 4};


int main(void)
{
int aa1;

aa1 = table1[1];

aa1 = table2[2];

aa1 = table3[3];

aa1 = table4[4];


return 0;
}

7月19日 21:53:20
轉換PDF檔 列印


Re: dspic33fj系列建立const陣列問題.
資深會員
註冊日期:
2009/04/07 13:30
所屬群組:
註冊會員
文章: 171
等級: 12; EXP: 13
HP : 0 / 278
MP : 57 / 7753
離線
也可以用指標類型操作來讀取,

加上個指標操作的部分.

__psv__ int __attribute__((space(psv))) table1[1500] = { 1, 1, 1, 1, 1};
__psv__ int __attribute__((space(psv))) table2[1500] = { 2, 2, 2, 2, 2};
__psv__ int __attribute__((space(psv))) table3[1500] = { 3, 3, 3, 3, 3};
__psv__ int __attribute__((space(psv))) table4[1500] = { 4, 4, 4, 4, 4};

__psv__ int __attribute__((space(psv))) table5[1500] = { 0xE1, 0xE2, 0xE3, 0xE4, 0xE5};


int main(void)
{
int aa1;
__psv__ int *Ptr_psv;


aa1 = table1[1];

aa1 = table2[2];

aa1 = table3[3];

aa1 = table4[4];


Ptr_psv = table5;

aa1 = *Ptr_psv++;

aa1 = *Ptr_psv++;

aa1 = *Ptr_psv++;


return 0;
}

7月20日 08:40:41
轉換PDF檔 列印


Re: dspic33fj系列建立const陣列問題.
資深會員
註冊日期:
2004/07/12 13:55
所屬群組:
註冊會員
文章: 263
等級: 15; EXP: 17
HP : 0 / 354
MP : 87 / 14772
離線
依上述已試出陣列,感謝!

7月20日 19:36:04
轉換PDF檔 列印






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

[進階搜尋]


搜尋
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