• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::

論壇索引


Board index » All Posts (mechwu)




Re: 如何存1個2k的資料在rom中?
資深會員
資深會員


參照:

test452 寫道:
如何使用ccsc 存1個2k的資料在rom中?
又如何讀出來?


1. 板主大大有令,標題請加註 CCS

2. CCS 有 write_program_eeprom(),read_program_eeprom(),等兩個函數以及 #rom 指令用於 Prog_EE 的讀寫與燒錄。用 Help -> index ->... 自己查看看用法與範例吧

3. 部分解答在此,請耐心看完這十幾篇帖子

http://www.microchip.com.tw/modules/n ... .php?topic_id=331&forum=1

發表於: 2004/10/26 23:28
頂部


Re: 在 ccsc 中const 和 static宣告的變數有何不同?
資深會員
資深會員


參照:

test452 寫道:
在 ccsc 中const 和 static宣告的變數有何不同?


把下面這個範例 compile 一下,再看看編出來的
LST 檔 ( ASM 組語) 和 SYM 檔 (符號變數佔用的記憶體)
就知道啦

跑跑程式,仔細的,仔細的做做實驗吧

#include <18F452.H>
#use delay(clock=20000000)
#use RS232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

const int8 k[3] = {357};  // 常數,不佔用 RAM
int8       z;                 // global variable, 總體變數

int8 fun_1(int8 x)
{
   
int8        c;             // 會與他人共用 RAM 的局部變數         
   
static int8 s 7;         // 不與他人共用 RAM 的局部變數
   
   
s  x;  

   
printf(" s = %u"s);      // 試試看,s 會印出什麼數字?   

   
c  k[2];
   return 
c;
}

int8 fun_2(int8 x)
{
   
int8        c;
   static 
int8 s;             // 不與他人共用 RAM 的局部變數,初始化為 0
   
   
s  x;  

   
printf(" s = %u"s);      // 試試看,s 會印出什麼數字?   

   
c  k[2];
   return 
c;
}

void main()
{
   
int8        xy;    // local variable, 局部變數
   
const int8  kc 2;  // 常數

   
x     2;
   
y     k[1] + x;
   
z     kc y;  

// kc    = z - y;    // 能這樣用嗎?

   
y     fun_1(x); // 試試看,s 會印出什麼數字?
   
z     fun_1(y); // 試試看,s 會印出什麼數字?

   
y     fun_2(x); // 試試看,s 會印出什麼數字?
   
z     fun_2(y); // 試試看,s 會印出什麼數字?
}


SYM 檔
005     z
006     fun_1
.s
007     fun_2
.s
008     main.x
009     main.y
00A     fun_2
.// 和 fun_1.x 共用 RAM
00A     fun_1.x
00B     fun_2
.// 和 fun_1.c 共用 RAM
00B     fun_1.c


LST 檔
.................... void main()
.................... {
010E:  CLRF   TBLPTRU
... 略 ...
011E:  MOVLW  81
0120
:  MOVWF  SPBRG
0122
:  MOVLW  26
0124
:  MOVWF  TXSTA
0126
:  MOVLW  90
0128:  MOVWF  RCSTA
012A
:  MOVLW  07
012C
:  MOVWF  s // fun_1.s 初始化為 7
012E:  CLRF   s // fun_2.s 初始化為 0
... 略 ... 自己去看吧


發表於: 2004/10/26 22:39
頂部


Re: 請問可以在dsPIC上用PIC的編程器嗎?如果不行,那dsPIC的編程器很貴嗎?
資深會員
資深會員



如果你說的 編程器 是 Programmer ,則用 ICD2 就好,

不貴的

發表於: 2004/10/26 11:33
頂部


Re: can bus
資深會員
資深會員


參照:

lin0467 寫道:
我是技術學院學生要作CAN-BUS專題請問需要哪些材料
,哪裡能夠取得,希望有好心的人能告知,謝謝


http://www.ccsinfo.com/canbusdvkt.shtml
拿出信用卡,刷下去,一星期後就可以交報告了,呵呵。

或是這個 http://www.microchip.com.tw/material.htm
Microchip 台灣分公司有講義,有實驗板,有範例程式,
拿起電話,call Microchip 台灣分公司,三天就交卷啦。

CAN,不就是罐頭嗎,開罐就喝,喝一杯喔

發表於: 2004/10/26 0:42
頂部


Re: 有人要 AN833 ?
資深會員
資深會員


參照:

joyce 寫道:
"結束 tcp 通訊"是指將tcp socket關掉, 然後再開一個新的socket給udp用嗎?

還是tcp和udp是可共存的,可同時開兩個socket切換使用? 不知道要如何才能使其合併使用?


tcp 和 udp 是可以共存的。我不會用 AN833,我只知道 AN833 可以同時開 253 個 socket。

前兩天把我的程式修改了一下,每個封包 1.4 kB 時的測試結果是 ...

HTTP 極速:50 kB/sec
TCP 極速:75 kB/sec
UDP 極速:300 kB/sec

操到極限啦 嗚嗚

發表於: 2004/10/23 0:57
頂部


Re: DemoBoard 1.1好像壞了
資深會員
資深會員


參照:

jwean 寫道:
如題,一直沒法找到我的CPU換了一塊也一樣耶,真怪!

Setting Vdd source to target
ICDWarn0020: Invalid target device id (expected=0x18, read=0x0)
...Reading ICD Product ID
Running ICD Self Test
...Passed
MPLAB ICD 2 Ready

請高手指教,到底是哪裡出了問題呢?



該不會是這個吧 ...

http://www.goldenchip.com.cn/gdbbs/di ... melimit=&operator=&page=1


發表於: 2004/10/21 0:29
頂部


Re: CCS Compiler 3.074 & MPLAB 6.62版問題
資深會員
資深會員


參照:

rocha 寫道:
各位先進:

我使用CCS 3.074版本於MPLAB 6.62版需要如何設定才可以正常使用,我使用的ICE 為ICE 2000,我不知道如何設定才可以正常使用。

希望說明越詳盡越好。



版本太舊,無法設定!
版本太舊,功能差太多!
版本太舊,缺陷(蟲?)一堆!

換新版吧
夠詳盡嗎?

Best wishes

發表於: 2004/10/21 0:23
頂部


Re: CCSC & ICD2燒錄格式 ???
資深會員
資深會員


參照:

kuosda 寫道:
這個程式compiler後的hex檔可以在allp3 & Mplab5.7 版中正確的載入data ee,而Mplab 6.xx~6.2就會發生,第一筆資料是對的後三筆就都是"0x00"(後三筆有錯誤)
相同的hex files 在MPLAB5.7版與6.xx版載入卻有不同的結果
我原本以為是ccsc的問題(一年改幾十版,每年還要給us.99,真無奈),現在終於知道問題點了



直接用 write_eeprom() 就不必去管 MPLAB 或燒錄器的版本問題啦,再說,你現在可以用,那天他們改版就又死啦
#rom 0xF00000 能寫到 DataEE 這秘密功能要依賴 MPLAB,還是少用為妙,還有,考慮一下移植性吧,換用 18F4620 之後還會對嗎?

多保重

又,CCS 的 write_eeprom() 是用 inline 的方式,打包一下
my_write_eeprom(addr,x) { write_eeprom(addr,x);}
多次調用時可節省許多程式空間

發表於: 2004/10/20 14:42
頂部


Re: CCSC & ICD2燒錄格式 ???
資深會員
資深會員


這樣寫就可以用 MPLAB 讀 HEX 燒 DataEE 啦

#include <18F452.H>
#rom 0xF00000 ={0x0201, 0x0403}
#rom 0xF00004 ={0x0605, 0x0807} // 18F 的程式碼以 16 bit 的 word 為單位

void main() { int8 x; x=1;
}

仔細看這句說的 words ...
address is a ROM word address, list is a list of "words" separated by commas

HEX 檔

:020000040000FA
:1000000002EF00F0F86AD09EEA6AE96AC180C18214
:0A001000C184C196010E066E0300C4
:0200000400F00A
:080000000102030405060708D4 // 成了吧
:00000001FF
;PIC18F452



#rom 0xF00000 竟然會寫到 DataEE去,Manual 沒寫,你去哪裡學來這招的? 有夠厲害!

發表於: 2004/10/20 1:59
頂部


Re: CCSC & ICD2燒錄格式 ???
資深會員
資深會員


參照:

kuosda 寫道:
Date EEprom (ic用18F452)
我是用 #rom 0xF00000 = { 0x82 } 指令去set eeprom 的初值
在程式中用 read_eeprom 指令去讀這個位址的數值


傷腦筋

#rom 0xF00000 編出來的是在 HEX 檔裡,燒到 Program EE 去,看看 HEX 檔就知道

read_eeprom() 讀的是 Data EE,挖哩,怎能讀到 Program EE?該用 write_eeprom() 寫到 Data EE 才對。

Help -> index -> #rom 看看線上說明吧
Help -> index -> write_eeprom
Help -> index -> write_program_eeprom


CCS 無法對 Data EE 做初始化,若要用 ICD2 燒進 Data EE則要用 MCH 檔,開 MPLAB,View -> EEPROM -> 滑鼠移到 EEPROM 子視窗上你要的位址,點右鍵,Import Table -> MCH 檔或 TXT 檔均可,格式範例如下

00 00 07 00 00 07 8C 00 00 00 00 50 04 1F 0D 61
67 75 65 73 74 5F 5F 70 6C 61 79 69 6E 67 01 00

我就只會這招啦,知道其他招數的朋友們再教一下吧,謝謝囉
--------------------------------

#rom 0xF000={1,2,3,4} 的效果如下

--------------------------------
#include <18F452.H>
#rom 0xF000={1,2,3,4}
void main()
{
int8 x;
x=1;
}

變成 HEX 檔 ...

:020000040000FA
:1000000002EF00F0F86AD09EEA6AE96AC180C18214
:0A001000C184C196010E066E0300C4
:08F000000100020003000400FE <--#rom ... 放在這裡
:00000001FF
;PIC18F452

燒進 Program EE 囉,呵呵

#ROM

Syntax:
#rom address = {list};

Elements:
address is a ROM word address, list is a list of words separated by commas

Purpose:
Allows the insertion of data into the .HEX file. In particular, this may be used to program the '84 data EEPROM, as shown in the following example.

Note that if the #ROM address is inside the program memory space, the directive creates a segment for the data, resulting in an error if a #ORG is over the same area. The #ROM data will also be counted as used program memory space.

Examples:
#rom 0x2100={1,2,3,4,5,6,7,8}

--------------
po 了 41 篇之後,終於從"勇於發言"昇級為"熱心公益"啦,
喝杯咖啡,慶祝一下囉

發表於: 2004/10/19 23:18
頂部



« 1 ... 9 10 11 (12) 13 14 15 16 »



:::

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

教育訓練中心

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