:::

論壇索引


Board index » All Posts




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


參照:

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
頂部


Re: PIC 的 complier有那些, 可以到那兒download呢?
高級會員
高級會員


C-compiler, BASIC compiler, PASCAL compiler,
Forth compiler ...

要錢的,不要錢的,這裡都有相關連結 ...

http://www.pic-c.com/links/compiler.html

發表於: 2004/10/4 17:49
頂部


Re: PIC與RS323間傳輸
版主
版主


C 還是Assembly ? which PIC ?

發表於: 2004/10/4 13:54
頂部


Re: MPLAB會組譯錯誤嗎?
版主
版主


看了你的程式,這該怎麼說呢!

TRISB 應該利用 include *.inc 的方式將Microchip所定義的周邊名稱帶入到程式裡。
list p=16F877a
#include <p16f877a.inc> ; Include file locate at defult directory

二進制的寫法為 : b'00000001'
十進制的寫法為 : d'200' 或 .200
十六進制的寫法為 : h'3F'或 0x3f 或03fh
各家出的組義器,語法的定義會稍有不同的格式

建議看一下 MPASM & MPLINK User's Guide 或看一下右邊的教育訓練內的 MPASM Workshop 講義。

發表於: 2004/10/4 13:49
頂部


Re: PIC 的 complier有那些, 可以到那兒download呢?
版主
版主


除了 MPLAB IDE 以外,還有很多的軟體可以在底下的網站上下載: http://www.microchip.com/stellent/idc ... 1475&category=devSoftware

MPLAB C18 : PIC18Fxxxx C compiler , Demo Version 可以使用60天
MPLAB c30 : dsPIC C Compiler

至於PIC16Cxxx的C Compiler,就只有使用Third-Party的產品了,其相關連結網站如下: Hi-Tech PIcc
http://www.microchip.com/stellent/idc ... ech+picc&DesignDocSelect=

發表於: 2004/10/4 13:37
頂部


Re: 0~9999計數程式,請教各位
初級會員
初級會員


謝謝版主的回應建議,我會就你的建議研究流程.

發表於: 2004/10/4 12:56
頂部


Re: PIC 的 complier有那些, 可以到那兒download呢?
新會員
新會員


CCS C Complier要錢
Hi-Tech C Complier要錢
PIC C Complier要錢

發表於: 2004/10/4 12:23
頂部


再次提醒:討論區文章主題請簡明闡述文章內容
管理員
管理員


如題,如此可以方便大家查詢或回答問題來幫助您。否則,一定要打開該文章才可看到內容,意願會降低。

同時,內容最好指明所用的元件,並把各種條件儘量說清楚,如此一目了瞭,不用打啞謎。

發表於: 2004/10/4 12:06
頂部


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
頂部


Re: 為何變數無法致能?
高級會員
高級會員


謝謝版主的答覆...
的確我是這方面的新手...
對於您的建議我會再好好研究一下...
以後請多多指教!

發表於: 2004/10/4 11:32
頂部



« 1 ... 7168 7169 7170 (7171) 7172 7173 7174 ... 7288 »