Re: PIC18F6490 LCD設定
|
||||
---|---|---|---|---|
版主
|
要不要到Microchip美國網站,找一下PICDEM LCD的資料下來參考?裏頭有線路圖,有source code。雖然它是針對PIC18F8490,但是應該是和6490差不多的才對。
發表於: 2005/10/12 10:52
|
|||
|
Re: ADRESH和ADRESL
|
||||
---|---|---|---|---|
高級會員
|
nicecookie所寫的那個範例就是把AD轉換的結果寫到RAM裡了
基本上我們每宣告一個變數它都會在記憶體佔個空間 所以你要的就是這樣的功能的話就如前一個範例所示就可以得到結果囉
發表於: 2005/10/12 10:39
|
|||
|
Re: PIC18F6490 LCD設定
|
||||
---|---|---|---|---|
資深會員
|
能否請microchip台灣分公司代為詢問美國總公司,PIC18LF6490的LCD如何設定規劃,還是這顆chip根本就是有問題
發表於: 2005/10/12 10:27
|
|||
|
Re: 用Capture 量測PWM的High的時間的問題
|
||||
---|---|---|---|---|
新會員
|
請問如果改成ccp2的話
有哪些要注意的呢? 謝謝^^
發表於: 2005/10/12 1:37
|
|||
|
Re: 偶又碰到問題啦....
|
||||
---|---|---|---|---|
資深會員
|
大哥知了 3Q a lot.....笨鴨偶受益多多
發表於: 2005/10/12 0:22
|
|||
|
Re: ADRESH和ADRESL
|
||||
---|---|---|---|---|
初級會員
|
請問原PO或是網上的各位前輩,可以對原PO的問題解決方法
做個詳細的解說嗎? 就是把AD的值儲存在記憶體中 對不起~~我真的是新手中的新手
發表於: 2005/10/11 23:08
|
|||
|
Re: BANK1變數定義問題
|
||||
---|---|---|---|---|
初級會員
|
Dear Jubel,
您的問題晾了很幾天了,我試著回答一下吧! 1. PIC系列的Memory Banking是user要自理且要很注意的。 2. 在MPLAB IDE下,“Help” -> “Topics” -> “MPASM assembler” -> “索引” -> “Bank Selecting”可以找到以下範例: group1 udata 0x20 ;group1 data stored at locations ;starting at 0x20 (bank 0). group1_var1 res 1 ;group1_var1 located at 0x20. group1_var2 res 1 ;group1_var2 located at 0x21. group2 udata 0xA0 ;group2 data stored at locations ;starting at 0xA0 (bank 1) group2_var1 res 1 group2_var2 res 1 RST CODE 0x0 ;The code section named RST ;is placed at program memory ;location 0x0. The next two ;instructions are placed in ;code section RST. pagesel start ;Jumps to the location labelled goto start ;'start'. PGM CODE ;This is the begining of the ;code section named PGM. It is ;a relocatable code section ;since no absolute address is ;given along with directive CODE. start banksel group1_var1 ;This directive generates code ;to set/clear bank select bits ;RP0 & RP1 of STATUS register ;depending upon the address of ;group1_var1. clrf group1_var1 clrf group1_var2 banksel group2_var1 ;This directive generates code ;to set/clear bank select bits ;RP0 & RP1 of STATUS register ;depending upon the address of ;group2_var1. clrf group2_var1 clrf group2_var2 goto $ ;Go to current line (loop here) end 3. udata-res提供relocatable 定址方式。這與您的絕對定址不同。 4. 您似乎比較喜歡絕對定址?除非有絕對必要,建議您培養使用relocatable 定址的習慣,程式的可攜性較佳。
發表於: 2005/10/11 23:04
|
|||
|
關於18F452 的問題
|
||||
---|---|---|---|---|
新會員
|
本人寫了一個如下的小程式
#include <p18f452.h> #pragma config OSC =HS #pragma config WDT =OFF #pragma config LVP =OFF unsigned char i; void main(void) { i=1; while(1) { Rlncf(i,1,0); } } Build 這個程式時並沒有任可問題 但是 i 的 的數值並沒有改變 以Step Over 運行 i 不停也是 0000 0001 就像沒有執行Rlncf 一樣 而 Rlncf(i,1,0); 的Disassembly 竟是 8: Rlncf(i,1,0); 00D8 0100 MOVLB 0 00DA 4600 RLNCF 0, F, ACCESS 請高手指教我程序問題之處 Thx Ps. 已試 MPLAB SIM 及 ICD2 的結果都是一樣呢
發表於: 2005/10/11 20:48
|
|||
|
Re: 偶又碰到問題啦....
|
||||
---|---|---|---|---|
初級會員
|
Dear duck288,
請注意,最後的脈衝寬度是1.1ms 不是 1.0ms。如果,最後脈寬需要 1.0ms,可修改以下指令: 1. “movlw d'30';” 改為 “movlw d'31';” 2. “movlw d'10';” 改為 “movlw d'09';” 然而一般我們在程式中會避免直接引用常數,以免一但需要變更該常數時,就要「上窮碧落下黃泉」的到處找問題,因此多半在宣告區來處理常數。 程式可作以下修改: ; ------------------------------------------------------------------------- #define N_of_LongestPulse 40 ; 最長脈寬的 N #define N_of_ShortestPulse 11 ; 最短脈寬的 N #define ExcutionTimes N_of_LongestPulse- N_of_ShortestPulse+1 ; 執行次數 #define Bias ShortestPulse-1 ; 偏壓值 於是程式碼就可以改成: 1. “movlw d'30';” 改為 “movlw ExcutionTimes;” 2. “movlw d'10';” 改為 “movlw Bias;” ; ------------------------------------------------------------------------- 這樣,只須依需要修改 N_of_LongestPulse 及 N_of_ShortestPulse 數值,再組譯即可。實際執行次數及偏壓值的計算,可交由組譯器處理。
發表於: 2005/10/11 16:05
|
|||
|