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


Browsing this Thread:   1 Anonymous Users




(1) 2 »


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


查看用戶資訊
參照:

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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: CCSC & ICD2燒錄格式 ???
#10
中級會員
中級會員


查看用戶資訊
我又重新測試了一下,終於發現問題出在那邊的
測試程式如下:
#include <18F452.H>
#rom 0xF00000 = { 0x82 } // IEEE754 float
#rom 0xF00001 = { 0x2D } // data ee 可以用byte為單位
#rom 0xF00002 = { 0xE8 }
#rom 0xF00003 = { 0xA7 }
void main()
{
int8 x;
x=1;
}

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


發表於: 2004/10/20 10:00
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


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


查看用戶資訊
這樣寫就可以用 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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: CCSC & ICD2燒錄格式 ???
#8
中級會員
中級會員


查看用戶資訊
可能有點地方弄錯了
#rom 0xF00000 = { 0x82 }
#rom 0xF000={1,2,3,4}

測試程式如下:
#include <18F452.H>
#rom 0xF00000 ={1} //不可用上述的方法放資料
#rom 0xF00001 ={2} //只能一個位址放一筆資料
#rom 0xF00002 ={3}
#rom 0xF00003 ={4}
void main()
{
int8 x;
x=1;
}

hex files如下:
:020000040000FA
:1000000002EF00F0F86AD09EEA6AE96AC180C18214
:0A001000C184C196010E066E0300C4
:0200000400F00A
:020000000100FD
:020001000200FB
:020002000300F9
:020003000400F7
:00000001FF
;PIC18F452

使用cod檔載入 data ee寫入ok
使用hex檔載入 data ee寫入就失敗
我也有觀察用hex檔載入後 data ee的內容
第一筆資料是對的後三筆就都是"0x00"(後三筆有錯誤)
我用了一些浮點變數,所以參數區以四個byte為一組data

我用picstart與allp3載入hex檔都可在程式中正確的讀寫
data ee(所以參數寫入應該不會有問題才是,否則讀回來的浮點數值應該會有錯才對),對此不解

謝謝你的回文 (台灣就是要有樣熱心的大大,才會更進步)

發表於: 2004/10/20 1:27
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


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


查看用戶資訊
參照:

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
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: CCSC & ICD2燒錄格式 ???
#6
中級會員
中級會員


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

謝謝你對ccsc compiler 一些問題的解惑
對我真的滿有幫助的,再一次謝謝你
另外 pch v3.212版好像如你所說的,沒什麼bug
我的code 在v3.187版本中編譯後執行大都沒什問題
近期會再用 v3.212的試試看,真希望這是最後的版本了



發表於: 2004/10/19 16:10
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


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


查看用戶資訊
參照:

kuosda 寫道:
非常感謝你的回應.
我用了是PCH V3.187 & MPLAB 6.0(5.7也試過)
問題出在EEPROM使用hex檔無法正確用ICD2燒入IC中(cod檔可以)
(我在程式段有加入一些EEPROM初始的數值)
PICSTART & ALLP3 可以

我會更新到6.2版試試看
PCH compiler參數如下
CCSC +FH +ES +O8 TEST.c


Data EE 還是 Program EE ? 我沒用過 DataEE
把你的 TEST.c 貼出來,我試試看

發表於: 2004/10/19 15:29
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: CCSC & ICD2燒錄格式 ???
#4
中級會員
中級會員


查看用戶資訊
非常感謝你的回應.
我用了是PCH V3.187 & MPLAB 6.0(5.7也試過)
問題出在EEPROM使用hex檔無法正確用ICD2燒入IC中(cod檔可以)
(我在程式段有加入一些EEPROM初始的數值)
PICSTART & ALLP3 可以

我會更新到6.2版試試看
PCH compiler參數如下
CCSC +FH +ES +O8 TEST.c

發表於: 2004/10/19 14:02
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: CCSC & ICD2燒錄格式 ???
#3
中級會員
中級會員


查看用戶資訊
非常感謝你的回應.
我用了是PCH V3.187 & MPLAB 6.0(5.7也試過)
問題出在EEPROM使用hex檔無法正確用ICD2燒入IC中(cod檔可以)
(我在程式段有加入一些EEPROM初始的數值)
PICSTART & ALLP3 可以

我會更新到6.2版試試看
PCH compiler參數如下
CCSC +FH +ES +O8 TEST.c

發表於: 2004/10/19 14:01
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


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


查看用戶資訊
參照:

kuosda 寫道:
我用CCSC的 compiler 編譯後的 HEX files
可以供"PICSTART"與"河洛的ALLP3"燒錄並正常運作
用ICD2燒錄HEX files時,確無法正常工作(COD files 可以)
請問有人知到這些格式的差異嗎?


我用 CCSC 加 ICD2加 MPLAB 6.62,沒問題啊。

參閱\r
http://www.ccsinfo.com/forum/viewtopi ... 1b146985348b5a17620f9615d

唯一差異,CCSC 編出來的 HEX 檔的最後多了一行,
;PIC16F877
MPLAB 編出來的 HEX 檔沒這行,把它刪掉試試吧

喔,還有一件事 Options -> File Formats -> 8 bit HEX
你該不會是選錯格式了吧

又,CCS 也有出 ICD-U40,只要 USD$75,也有 C-level debug,單行執行,斷點等功能,試試看吧

發表於: 2004/10/19 10:24
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... ]

教育訓練中心

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