:::


Browsing this Thread:   1 Anonymous Users






再來一個問題 (站長加註:有關C18大陣列的問題)
#1
新會員
新會員


查看用戶資訊
就是PIC18FXXX系列可以使用C語言來設計
那請問一下使用陣列的空間最大可以到多少
是不是有什麼特別的指令可以設定到最大
如:分割

發表於: 2004/10/4 10:43
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 再來一個問題
#2
版主
版主


查看用戶資訊
MPLAB C18 是可以定義超過256Bytes的陣列,你可以參考右邊教育訓練下的W410 C18 Workshop Page 133 - 135 的說明。
摘錄其說明如下 :

1.
陣列的存取一般是被限定在同一個“Bank”內的資料最多為 256 Bytes,但可透過下列方式以擴展陣列:
- 巨大陣列的存取在MPLAB-C18是可以被允許的
- 利用 #progma 將該陣列設定到該Bank的起始位置0xn00 (n為Bank數)。
- 修改連結敘述檔(Linker Script)即可達到巨大陣列的存取:
- 檔案位置“C:\mcc18\lkr\18f452.lkr”。
- 陣列的擴展必須是相鄰的banks。
- 此區域必須加以保護以避免被其它變數所使用,使用“PROTECTED” 的屬性參數。

2. 程式範例:
#pragma udata HugeObj //select HugeObj section
static unsigned char Array1[0x200]; //define array
#pragma udata //return to default udata section

unsigned char *Ptr1; //define array pointer (16-bits)

void main(void)
{
unsigned int Count; //define counter variable

Ptr1 = Array1; //initialize pointer

for (Count=0x00; Count<0x200; Count++)
{
*Ptr1=0xFF; //set array element to 0xFF
Ptr1++;
}
}

3. Linker檔的修改

ACCESSBANK NAME=accessram START=0x0 END=0x7F
DATABANK NAME=gpr0 START=0x80 END=0xFF
DATABANK NAME=gpr1 START=0x100 END=0x1FF
//DATABANK NAME=gpr2 START=0x200 END=0x2FF
//DATABANK NAME=gpr3 START=0x300 END=0x3FF
DATABANK NAME=gpr4 START=0x400 END=0x4FF
DATABANK NAME=gpr5 START=0x500 END=0x5FF
ACCESSBANK NAME=accesssfr START=0xF80 END=0xFFF

DATABANK NAME=hugestuff START=0x200 END=0x3FF PROTECTED
SECTION NAME=HugeObj RAM=hugestuff


發表於: 2004/10/4 11:57
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 再來一個問題 (站長加註:有關C18大陣列的問題)
#3
高級會員
高級會員


查看用戶資訊
參照:

shuhex 寫道:
就是PIC18FXXX系列可以使用C語言來設計
那請問一下使用陣列的空間最大可以到多少
是不是有什麼特別的指令可以設定到最大
如:分割


看你用哪家的 C-compiler ?

若是用 CCS 的,這樣寫就好

int x_array[1500]; // 18F452 有 1536 byte, 18F4620 給他寫到 3800 也行

剩下的,就交給 Compiler 啦

夠簡單吧,呵呵

你用哪家的 C-compiler ? C18 ? PICC-18 ? IAR ?

發表於: 2004/10/4 17:58
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 再來一個問題 (站長加註:有關C18大陣列的問題)
#4
新會員
新會員


查看用戶資訊

我是用C18....

發表於: 2004/10/5 10:11
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 再來一個問題 (站長加註:有關C18大陣列的問題)
#5
版主
版主


查看用戶資訊
To mechwu:

真的謝謝你,每次碰到 CCS的C compiler都讓您鼎力相助,真不愧是 CCS 的高手。

Thanks & Best Regards,
Microchip Taiwan AE team

發表於: 2004/10/5 22:33
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 再來一個問題 (站長加註:有關C18大陣列的問題)
#6
高級會員
高級會員


查看用戶資訊
To Ryang:

Richard 大大,您別開玩笑啦,我哪算高手,只是手熟罷了。
專業級的 Compiler 對我而言太複雜了,
C18 裡的 printf("%x",x) 該怎樣用我也都還搞不清楚,
還好有 CCS 讓我這個低水平的人也能帶著一堆沒水平的人玩 PIC,呵呵

http://www.goldenchip.com.cn/gdbbs/di ... =&page=1&operator=&skin=1

CCS 到 3.212 版總算是穩定了,苦盡甘來,呼呼。

多謝您這兩三四年來的幫忙,讓我們終於能把案子搞定,
繼續堅定的支持擁護愛戴推廣 Microchip,謝謝啦。

多喝水,多喝水,才能來繼續灌水喔,
晚上十點以後不要拼命上站打BB啦,
來杯黑黑的火鳥咖啡吧

Best wishes

發表於: 2004/10/6 9:54
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You can attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

http://elearning.microchip.com.tw/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

課程 - 台北教育訓練中心
課程 - 新竹教育訓練中心
課程 - 高雄教育訓練中心
教育訓練中心介紹
購買 - 實驗工具
臺灣實驗板介紹與資源