|
Re: DSPIC u$139發展PCB真的要六月中才有貨嗎?
|
||||
|---|---|---|---|---|
|
版主
![]()
|
有一個建議:目前已量產的dsPIC,28pin的2010有dip的包裝。要自己做實驗比較方便。
也許,急著要玩 dsPIC的人,可以先拿 dsPIC30F2010 (不過,還是要先弄到sample),自己用萬用板,接幾個按鍵及LED,搭配ICD2就可以先玩了。 在右方「教材及講義」中,可以找到一些dsPIC workshop範例程式可以套用練習。 自力救濟或許比乾著急要好一些。
發表於: 2004/6/16 15:49
|
|||
|
||||
|
Re: PIC 與 FPGA
|
||||
|---|---|---|---|---|
|
版主
![]()
|
PICmicro的命名有一定的規則,通常只要中間有一個"L"的字,就表示可以工作在低電壓。所以,PIC18LF452就可以工作在低電壓。不過,這並不是表示它可以3.3V跑40MHz:在DATA SHEET有電壓在頻率的對照圖,要仔細看一下。
另外,提醒一下,使用一個IC,除了看 data sheet 以外,還要查一下errata資料,以免IC和data sheet不太吻合時,造成使用上的困擾。
發表於: 2004/6/16 9:11
|
|||
|
||||
|
Re: PIC 與 FPGA
|
||||
|---|---|---|---|---|
|
版主
![]()
|
這樣問很難回答。
PIC有很多顆都可以工作在VCC=3.3V,這樣,I/O的設計應該比較容易。 另外,有一些大pin-count的,如80pin的,可以外接程式記憶體,或利用定址的方式擴充I/O或連結RAM。 也許,說出您需要的介面方式,接腳數,可能比較容易推薦。 或者,有人有心得的話,就大聲說出來吧!
發表於: 2004/6/15 17:26
|
|||
|
||||
|
Re: pic16c87可以使用c18 compiler嘛?
|
||||
|---|---|---|---|---|
|
版主
![]()
|
很不幸地,不行。 C18就只能針對PIC18來使用。其中有一個很重要的原因是:PIC18的程式記憶體是16-BIT寬,而PIC16XX是14-BIT寬或12-BIT寬,差很多。
發表於: 2004/6/14 17:41
|
|||
|
||||
|
Re: 關於IF ELSE ENDIF
|
||||
|---|---|---|---|---|
|
版主
![]()
|
if, els, endif是所謂的directive,不是真正的指令。它的動作在組譯的時候就已經做完了,不可能還能在程式執行的時候「動態」地去判讀PORTD。
version是常數,不是變數,當然watch不到。 PORTD 在.inc檔裏頭,被定義=8,自然一定執行一。 若想判斷PORTD,藉以執行不同的程式,可以類似用以下的程式: MOVLW D'8' ;或其它值,如D'20' XORWF PORTD,W BTFSC STATUS,Z GOTO PORTD_IS_8 PORTD_NOT_8: ........ PORTD_IS_8: ........
發表於: 2004/6/14 16:53
|
|||
|
||||
|
Re: 關於IF ELSE ENDIF
|
||||
|---|---|---|---|---|
|
版主
![]()
|
可以啊!以下是我試的程式內容:
list p=16c57c #include <p16c5x.inc> #define version 90 org 0h ; movlw b'00000000' tris PORTB ; if version == 100; check current version movlw 0x55 movwf PORTB else movlw 0x0aa movwf PORTB endif loop: goto loop end
發表於: 2004/6/14 11:37
|
|||
|
||||
|
Re: c18 問題
|
||||
|---|---|---|---|---|
|
版主
![]()
|
從錯誤訊息中看出,該巨集指令需要三個參數。詳情請查:
MPLAB® C18 C COMPILER USER’S GUIDE。
發表於: 2004/6/14 10:36
|
|||
|
||||
|
Re: 請教使用pic12c508 內部rc震盪問題?
|
||||
|---|---|---|---|---|
|
版主
![]()
|
使用PIC12C50X(A)內部RC振盪的正確方法是:在程式記憶體的第0行位置,加入MOVWF OSCCAL的指令,爾後程式就會以4MHz,誤差幾個%的速度執行,就這樣。為什麼呢?待我慢慢道來:
話說PIC12C50X(A),從DATA SHEET來看,雖然說它的重置向量號稱是在0x00的位置,其實,由於它是12bit的架構,就和PIC16C5X一樣,真正的重置向量應該是在程式的最後一行!以508(A)而言,就是在0X1FF的位置。 Microchip原廠,在IC出貨之前,會在最後一行的位置,填入一個MOVLW 0X??的指令,??是Microchip測試出來的RC的校正值。於是,在POWER ON的時候,PIC會從最後一行執行,將0x??的值,利用MOVLW的執令,存入W暫存器。緊接著ROLL OVER至程式的第0行位置。所以,在第0行執行MOVWF OSCCAL,就可以將Microchip事先測定的校正值,填入OSCCAL,至此,PIC才會以校正過的4MHz來跑程式。 所以,就算是在程式第0行沒寫MOVWF OSCCAL指令,PIC也會動,只是頻率較不準而已。 隨時改變OSCCAL,就可以隨時改變PIC的振盪頻率;但是,有非常大的可能,您是調整不到您想要的頻率的;原因是:有可能某一個PIC12C50X(A),它的校正值已經調到最快的「盡磅」(台語,到底了),才剛好、勉強調到4MHz而已,您就不可能再將它的頻率調高了。 還有,有人說,犧牲許多顆PIC,測試校正值,最後再將校正值填入其它所有的PIC,以得到正確的振盪頻率,燒到其它所有PIC12C50X(A)裏頭去。這方法恐怕不可行也不需要,因為:Microchip已事先測得校正值,拿來用就可以了;而且,每一個PIC12C50X(A)的校正值都不同,而且變異性很大,根本沒有穩定或標準的校正值存在。 最後,使用PIC12C50X(A)時要注意:如果用的是OPT,燒錄器不可以燒到最後一個位置,不然校正值被覆蓋了就不妙。印象裏,有些燒錄器,如果您選項選擇不是/JW 包裝的,它就不會燒最後一個位置。如果用的是/JW包裝,也就是「開窗」的版本,在用紫外光燈清除資料之前,一定要記得先將裏頭的校正值讀出來、記起來;然後在燒錄時,再把它燒回去。習慣上,我會把校正值讀出來後,用鉛筆將它寫在IC的肚子上,保證不會被擦掉。切記!!!! 突然想起來,從右方的「江湖一點訣」也可以看到一些有關於PIC12CXXX的用法。
發表於: 2004/6/14 10:20
|
|||
|
||||
|
Re: 求助....C18DEMO版不能執行compile
|
||||
|---|---|---|---|---|
|
版主
![]()
|
已重新將不會馬上過期的C18-demo版放回來。
請從左方「檔案下載」中連結下載。
發表於: 2004/6/11 10:24
|
|||
|
||||