• slider image 442
  • slider image 477
  • slider image 479
  • slider image 480
  • slider image 481
  • slider image 482
:::


Browsing this Thread:   1 Anonymous Users






Re: 請問18系列之RAM及*.LKR問題?
#9
版主
版主


查看用戶資訊
參照:
雖然我也有這樣設,但會有錯誤!
UDATA A1=0X0000
UDATA A2=0X0001
UDATA A3=0X0002
UDATA A4=0X0003


拿掉一些多餘的字:
UDATA 0X0000
UDATA 0X0001
UDATA 0X0002
UDATA 0X0003

其實這些與法還是要看書的說明用試的很不好猜,看一下 MPASM Users' Guide 裡有關 Udata 及 Udata_acs 的用法。

發表於: 2007/9/12 9:06
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問18系列之RAM及*.LKR問題?
#8
資深會員
資深會員


查看用戶資訊
版主好:
雖然我改這樣設還是不行?
UDATA
A1=0x0000
A2=0x0001
A3=0x0002
因watch看不到!
請幫忙,Thanks.

發表於: 2007/9/11 16:32
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問18系列之RAM及*.LKR問題?
#7
資深會員
資深會員


查看用戶資訊
再請教版主:
雖然我也有這樣設,但會有錯誤!
UDATA A1=0X0000
UDATA A2=0X0001
UDATA A3=0X0002
UDATA A4=0X0003
...
ERROR[108]:Illegal character(=)
ERROR[154]:Each object file section must be contiguous
(section .udata)
ERROR[113]:Symbol not previsouly defined(A1)


發表於: 2007/9/11 16:23
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問18系列之RAM及*.LKR問題?
#6
版主
版主


查看用戶資訊
你對 udata 的使用還是不清楚,如果 udata 要直接指定位址的話要加入Address 的指定,如:
udata abc=0x0000 // abc 指定的 Address,且不可重複使用。
UDATA 語法
    
<Section Name>     UDATA     <RAM Address>
<
Section NameRAM節區名稱 可省略
如有指定節區名稱,會依 16F877
.lkr 檔案中對 RAM 該節區位址的設定進行RAM實際位址的安排
如不指定節區名稱,會自動安排到 unprotected 的 GPR
(nRAM 的位址
節區名稱不可重複
<RAM Address自定 RAM 位址 可省略
自定變數在 RAM 的起始位址
該起始位址可以為 
protected 或 unprotected 的區域

發表於: 2007/9/11 15:38
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問18系列之RAM及*.LKR問題?
#5
資深會員
資深會員


查看用戶資訊
感謝版主解答:

再請教UDATA的問題(多ASM檔):
1.UDATA =0x00 (不可)
2.MY_RAM1 UDATA (可但無法自行定址)
MY_RAM1 UDATA 0x00 (不可)
3.所以我用:
DATABANK NAME=GPR1 START=0X100 END=0X1EF
DATABANK NAME=GPR1_1 START=0X1F0 END 0X1FF
SECTION NAME=MY_RAM1 RAM=GPR1
SECTION NAME=MY_RAM1_1 RAM=GPR1_1
不知版主或高手覺得可行嗎!或還有其他方法呢?請告知.
Thanks.

發表於: 2007/9/11 15:18
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問18系列之RAM及*.LKR問題?
#4
版主
版主


查看用戶資訊
1. 要知道 Udata 的用法請到左邊下載中心找 Relocatable MPASM 講義。

2. 參照:
為何會出現這樣警告?
Warning[207] D:\TEST\MCU\PIC\TS_GLOBAL\MAIN.ASM 7 : Found label after column 1. (delay_value)


delay_value 左邊不要有空格。

發表於: 2007/9/11 11:09
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問18系列之RAM及*.LKR問題?
#3
資深會員
資深會員


查看用戶資訊
大家好:
那麼再請問=>
My_RAM0 UDATA該如何定址?
另外再請問=>程式如下(由help中copy的測試用):
;*******************************************************
;
main.asm
;*******************************************************
  
#include p16f877a.inc  ;Include standard header file
                         
;for the selected device.
  
UDATA
  delay_value  res  1
  
  
GLOBAL  delay_value    ;The variable 'delay_value',
                         ;
declared GLOBAL in this
                         
;moduleis included in an
                         
;EXTERN directive in the module
                         
;sub.asm.
  
EXTERN  delay          ;The variable 'delay'declared
                         
;EXTERN in this moduleis
                         
;declared GLOBAL in the module
                         
;sub.asm.
RST     CODE     0x0      ;The code section named RST
                          
;is placed at program memory
                          
;location 0x0The 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 PGMIt is
                          
;a relocatable code section
                          
;since no absolute address is
                          
;given along with directive CODE.
start
  movlw  D
'10'
  
movwf  delay_value
  xorlw  0x80
  call   delay
  
  
goto   start
  end  
;*******************************************************
       ;*******************************************************
;
sub.asm
;*******************************************************
  
#include p16f877a.inc  ;Include standard header file
                         
;for the selected device.
  GLOBAL  
delay          ;The variable 'delay' declared
                         
;GLOBAL in this module is
                         
;included in an EXTERN directive
                         
;in the module main.asm.
  
EXTERN  delay_value    ;The variable 'delay_value' 
                         
;declared EXTERN in this module
                         
;is declared GLOBAL in the  
                         
;module main.asm.
PGM  CODE
delay
  decfsz  delay_value
,1
  
goto   delay
  
return
  
end
             為何會出現這樣警告
?
      
Warning[207D:TESTMCUPICTS_GLOBALMAIN.ASM 7 Found label after column 1. (delay_value)


請幫忙Thanks.

發表於: 2007/9/11 11:05
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問18系列之RAM及*.LKR問題?
#2
版主
版主


查看用戶資訊
equ , cblock/endc 嚴格將起來是屬於絕對定址的語法,她們所翻出來的變數無法在有使用 Linker 的多檔案編輯下使用 MPLAB IDE 的 Watch Window 看到變數內容。
解決方法有:
如果要使用 Linker 來連結,就使用 udata 及 res 來定變數,其方法如下。
My_RAM0          UDATA            variable on GPR0 at 0x20
temp_count        RES             1               
temporary variable 
Count_ms    RES        1
Count_us    RES        1

My_RAM1    UDATA             
variable on GPR1 at 0xA0
Tx_Ring        RES        16    
reserved 16 bytes for Tx ring buffer
TX_Flag        RES        1    
8-bit Tx status Flag

如要用cblock/endc來定變數那就需使用絕對定址的語法來寫程式(ORG 方式),這時候就可以用 MPLAB IDE 的 Watch Window 看到 CBLOCK 所宣告的變數內容。

發表於: 2007/9/11 10:47
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請問18系列之RAM及*.LKR問題?
#1
資深會員
資深會員


查看用戶資訊
大家好:
我是參考曾百由的著作"ASM與PIC18"(LCD部分),那麼
我自己加入一些副程式;有定義一些變數,利用equ或
cblock,但在watch或file register卻找不到?另外為何
一定要載入*.LKR檔呢?(18f4423).
以上兩個問題希望有那位高手幫忙解答.Thanks

發表於: 2007/9/11 9:23
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------