Re: 再來一個問題 (站長加註:有關C18大陣列的問題)
|
||||
---|---|---|---|---|
資深會員
|
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
|
|||
|
Re: 再來一個問題 (站長加註:有關C18大陣列的問題)
|
||||
---|---|---|---|---|
版主
|
To mechwu:
真的謝謝你,每次碰到 CCS的C compiler都讓您鼎力相助,真不愧是 CCS 的高手。 Thanks & Best Regards, Microchip Taiwan AE team
發表於: 2004/10/5 22:33
|
|||
|
Re: 再來一個問題 (站長加註:有關C18大陣列的問題)
|
||||
---|---|---|---|---|
新會員
|
我是用C18....
發表於: 2004/10/5 10:11
|
|||
|
Re: 再來一個問題
|
||||
---|---|---|---|---|
版主
|
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
|
|||
|
再來一個問題 (站長加註:有關C18大陣列的問題)
|
||||
---|---|---|---|---|
新會員
|
就是PIC18FXXX系列可以使用C語言來設計
那請問一下使用陣列的空間最大可以到多少 是不是有什麼特別的指令可以設定到最大 如:分割
發表於: 2004/10/4 10:43
|
|||
|