:::

論壇索引


Board index » All Posts




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


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


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

發表於: 2004/10/4 10:43
頂部


dsPIC30F2010 A/D Buffer (ADCBUF6 - F)沒有被定義的問題
版主
版主


依據 Microchip 總公司通告,DSPIC30F2010在LINK30的連結描述檔裡
C:\pic30_tools\support\gld\p30f2010.gld 有關ADCBUF6 到 ADCBUFF
沒有被定義到,造成程式設計師誤以為ADC只有 ADCBUF0~5個,這是錯誤的。
實際上ADCBUF還是有16個,只要修改p30f2010.gld加入ADCBUF6~ADCBUFF就可以。

1. 使用C30者,只要修改 gld file
2. 使用ASM30,同時修改 gld 和 inc (注意 inc 的位置,有C版本及MPLAB IDE的版本,位置不一樣。)的

發表於: 2004/10/4 10:15
頂部


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


我只知道 MPLAB這套軟體, 那還有那些軟體呢?

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


MPLAB會組譯錯誤嗎?
新會員
新會員


TRISB EQU 00000001B
MOVLW 18D

上述兩行指今在MPLAB Complier時會過,
但會組繹錯誤, 難倒 在 MPLAB 不能用 00000001B , 18D 這樣的表示
法嗎? 若不行, 那那套軟體可以呢?
請各位高手指教一下.
謝謝!!

發表於: 2004/10/4 9:52
頂部


Re: 為何變數無法致能?
版主
版主


1. 看起來你對PIC18F452的指令還不是很熟悉它的使用語法,建議下載右邊的教育訓練課程內的W400研讀一下PIC18F系列的Access Bank的使用方式。
2. 有關USART的使用範例程式可參考W400裡的Lab4,那裡有詳細的說明;底下就是從該程式中針對USART的涉頂所寫的副程式景供參考:

; OSC = 16MHz
;***********************************************************************
;**** Initial USART as 9600,N,8,1
;***********************************************************************
Init_USART:
movlw b'00100000' ; 8-bit data mode , ASYNC
movwf TXSTA ; Low Speed mode, Enable TxD
;
movlw b'10010000' ; Enable Serial Port, 8-bit receive
movwf RCSTA ; Continuous Receive, Disable Address Detection
;
movlw .25 ; Set baud rate at 9600 with Low Speed mode
movwf SPBRG
;
bcf PIR1,TXIF ; Clear TxD interrupt flag
bcf PIE1,TXIE ; Disable TxD interrupt
;
bcf IPR1,RCIP ; Set the RxD for Low priority interrupt
bcf PIR1,RCIF ; Clear RxD interrupt flag
bsf PIE1,RCIE ; Enable RxD interrupt
;
return

發表於: 2004/10/4 9:41
頂部


Re: ROUND LOGIC
版主
版主


當您把資料,欲從accumulator中取出來的時候,利用SAR.R指令,就可以把資料,依據事先指定好的格式,做好「四捨五入」之類的資料修整,再把資料取出來至某一W暫存器中。

發表於: 2004/10/4 9:31
頂部



« 1 ... 7172 7173 7174 (7175) 7176 7177 7178 ... 7291 »



:::

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... ]

教育訓練中心

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