• slider image 442
  • slider image 492
  • slider image 493
  • slider image 494
  • slider image 495
  • slider image 496
:::


Browsing this Thread:   1 Anonymous Users






Re: ~C18 問題, 陣列值傳給指標~
#5
版主
版主


查看用戶資訊
因為先前post的程式只有一個資料列。

發表於: 2007/4/30 10:27
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: ~C18 問題, 陣列值傳給指標~
#4
高級會員
高級會員


查看用戶資訊
已解決, 宣告這樣就可以.
void InitialLCD(const rom char *BUF)
-------------------------------------------------------------
謝謝回答!
-------------------------------------------------------------
謝謝Ryang , 不過*不能拿掉, 我是用指標陣列代替二維陣列, 因為長度不固定.

Ex:

const rom char* INITIAL_TABLE[INIT_NUM]={
INIT_SWRESET,
INIT_GAMSET,
INIT_GCPSET0N_R,
.
.
.
};

const rom char INIT_SWRESET[]={
SWRESET,EOT
};
const rom char INIT_GAMSET[]={
GAMSET,0x01,EOT
};

const rom char INIT_GCPSET0N_R[]={
GCPSET0N_R,0x91,0x10,0x21,0x08,0x50,0x40,0x84,0x08,0x41,0x48,0x94,0xAB,0x2D,0x56,0xAE,0xD5,0x6A,0xAE,0xAA,0xAA,0x0A,0x41,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,EOT
};


發表於: 2007/4/30 10:07
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: ~C18 問題, 陣列值傳給指標~
#3
版主
版主


查看用戶資訊
參照:
const rom char *INITIAL_TABLE[INIT_NUM]={
INIT_SWRESET,


在陣列的宣告裡加上了一個 * 代表這是一個指標形態的陣列,INT_NUM 所代表的意義為有幾個陣列指標,其所指的位址為每個陣列指標的起始位址。一般的語法為:
#pragma romdata My_romdata 

/* VT-100 Terminal Screen Initilization */

const rom far char *Disp_Line[24]=
{
"                                                                VT-100 Terminal",
"                 Microchip Technology Taiwan ",
" ",
"                 MPLAB C18 Advance Application Workshop ",
" ",
"===============================================================================",
:
:

看你的程式只是要使用一般的陣列而已,將 * 拿掉看看。

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


Re: ~C18 問題, 陣列值傳給指標~
#2
資深會員
資深會員


查看用戶資訊
rom&ram混合碼會比較麻煩,原因可看disassemble code對照IC datasheet&compiler manual交互參考。解釋起來文字可以多到拿稿費了...PASS。

避免寫這種code,因為通常效率低落(如dspic用memory map解決了這個問題),如不可避免,應分開處理。你的答案應該是前項較合用。

發表於: 2007/4/29 19:37
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


~C18 問題, 陣列值傳給指標~
#1
高級會員
高級會員


查看用戶資訊
INITIAL_TABLE的值傳不到BUF, 程式如下:

謝謝大家的回答!



#define INIT_NUM 22
#define EOT 0xFF
#define SWRESET 0x01

const rom char INIT_SWRESET[]={
SWRESET,EOT
};

const rom char *INITIAL_TABLE[INIT_NUM]={
INIT_SWRESET,
.
};

void OpenLCD(void)
{
unsigned char i;
unsigned int Len;

for (i=0;i<INIT_NUM;i++)
{
InitialLCD(INITIAL_TABLE[i]);
}

}

void InitialLCD(const char *BUF)
{
unsigned char i,data;

i=0;
while( *(BUF+i) != EOT )
{
data = *(BUF+i);
i++;
}
}

發表於: 2007/4/27 18:12
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... ]

教育訓練中心

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