|
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
MC68HC08匠人應(yīng)用手記 |
作者:程序匠人 欄目:單片機(jī) |
MC68HC08匠人應(yīng)用手記.txt 前言 匠人最近開(kāi)始和MC68HC908的親密接觸.(忙著和它約會(huì),連上網(wǎng)次數(shù)也少了許多,嘿嘿....) 作為一個(gè)長(zhǎng)期用匯編的工程師"轉(zhuǎn)行"用C寫(xiě)程序,感覺(jué)挺累人,不過(guò)苦中也有樂(lè).愿將原汁原味的手記與大家分享. 這篇手記將隨著匠人的經(jīng)驗(yàn)值不斷升級(jí)而不斷更新,其中會(huì)有心得,也會(huì)有困惑,權(quán)當(dāng)是一個(gè)過(guò)程的見(jiàn)證吧. 首先得聲明,匠人是第一次用摩托羅拉的芯片,也是第一次用ANSI_C語(yǔ)言,所以手記中如有錯(cuò)誤和問(wèn)題,望大伙指點(diǎn).還有一點(diǎn)需要聲明的是,本文中有些段落是從其它文檔中摘抄或整理而來(lái),匠人無(wú)抄襲之意. /***************************************** 01.C語(yǔ)言中嵌入?yún)R編的4種方式: *****************************************/ //嵌入?yún)R編方式1(宏): EnableInterrupts; // 開(kāi)中斷 //嵌入?yún)R編方式2(可嵌入多條指令): asm { lda _PTB ; } //嵌入?yún)R編方式3(單條指令): asm eor #0b00000100 ; //嵌入?yún)R編方式4(單條指令): asm (" eor #4 "); /***************************************** 02.C語(yǔ)言中數(shù)的表示方式: *****************************************/ ****舉例如下: 二進(jìn)制: 0b00000100 十進(jìn)制: 4 十六進(jìn)制: 0x4 ****注意:匯編指令的表示方式與C的表示方式不一樣,但如果是在C中嵌入?yún)R編,則也要按C的方式來(lái)寫(xiě) ****問(wèn)題:八進(jìn)制的引導(dǎo)符號(hào)還不知道 /***************************************** 03.循環(huán)體的3種寫(xiě)法: *****************************************/ 寫(xiě)法1: while(1); { ...... } 寫(xiě)法2: for(;;); { ...... } 寫(xiě)法3: loop: ...... goto loop /***************************************** 04.關(guān)于復(fù)位及中斷的入口地址: *****************************************/ 所有的入口地址都存儲(chǔ)在$FFD0~$FFFF區(qū)域中 比如:復(fù)位地址存儲(chǔ)在$FFFE~$FFFF中(缺省值=DC8C,即復(fù)位后從DC8C處開(kāi)始執(zhí)行) ****問(wèn)題:如何修改入口地址,還不清楚 * - 本貼最后修改時(shí)間:2005-7-26 12:59:06 修改者:程序匠人 |
2樓: | >>參與討論 |
作者: AIRWILL 于 2005/7/2 21:33:00 發(fā)布:
你用的啥編譯器啊,Code warrror 的功能可是非常強(qiáng)大的 遠(yuǎn)在 keil 上啊 |
3樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/2 21:46:00 發(fā)布:
對(duì),就是Code warrror,功能確實(shí)很強(qiáng),就是不太會(huì)用 |
4樓: | >>參與討論 |
作者: hotpower 于 2005/7/3 2:37:00 發(fā)布:
頂一下 A人用C就是不一樣... |
5樓: | >>參與討論 |
作者: lishuanghua 于 2005/7/3 9:01:00 發(fā)布:
呵呵,匠人終于要用C了! 習(xí)慣后你會(huì)覺(jué)得用匯編是多么的累 |
6樓: | >>參與討論 |
作者: ehua 于 2005/7/3 9:27:00 發(fā)布:
到這里看看吧 http://www.edatech.com/bbs/index.asp 下面是關(guān)于這個(gè)軟件的一些常見(jiàn)問(wèn)題 http://www.edatech.com/bbs/dispbbs.asp?BoardID=3&replyID=284&id=284&star=1&skin=0 |
7樓: | >>參與討論 |
作者: 汽車電子 于 2005/7/3 10:53:00 發(fā)布:
是呀,Code warrror很好用,但 都是Metrowerks的軟件,怎么支持ARM的就比支持MOTOROLA的差這么遠(yuǎn)? |
8樓: | >>參與討論 |
作者: pheavecn 于 2005/7/3 16:30:00 發(fā)布:
我還是用的匯編呢!! 匠人也來(lái)淌這渾水了。 我的MON板自己做的。 可以交流一下。 |
9樓: | >>參與討論 |
作者: hotpower 于 2005/7/3 22:49:00 發(fā)布:
匠人爭(zhēng)做AC人 二教主不該落后呀...A人辛苦呀... 我進(jìn)論壇時(shí)幾乎發(fā)表都是A帖,有位網(wǎng)友說(shuō)我不會(huì)C... 哈哈...那我就給他來(lái)個(gè)"變臉",現(xiàn)在全部C... 雖然自己是個(gè)AC人,但一般還是表面的C人... |
10樓: | >>參與討論 |
作者: gtw 于 2005/7/4 8:19:00 發(fā)布:
使用HC08的幾點(diǎn)經(jīng)驗(yàn) A 應(yīng)當(dāng)先行完成各項(xiàng)設(shè)置,再去開(kāi)中斷。 B 定義入口地址,有多種方法interrupt void (VECTOR_NUMBER) FUNC_NAME(void)即為其一,可以自動(dòng)設(shè)置。 C CodeWarrior對(duì)恒為“真”的表達(dá)式編譯時(shí)經(jīng)常會(huì)有提示,很羅嗦,如while(1);不如用for(;;) * - 本貼最后修改時(shí)間:2005-7-4 13:56:31 修改者:gtw |
11樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/4 17:52:00 發(fā)布:
MC68HC908JL8匠人應(yīng)用手記_2005-07-04 MC68HC908JL8匠人應(yīng)用手記 前言 匠人最近開(kāi)始和MC68HC908JL8的親密接觸.(忙著和它約會(huì)連上網(wǎng)次數(shù)也少了許多,嘿嘿....) 作為一個(gè)長(zhǎng)期用匯編的工程師"轉(zhuǎn)行"用C寫(xiě)程序,感覺(jué)挺累人,不過(guò)苦中也有樂(lè).愿將原汁原味的手記與大家分享.這篇手記將隨著匠人的經(jīng)驗(yàn)值不斷升級(jí)而不斷更新,其中會(huì)有心得,也會(huì)有困惑,權(quán)當(dāng)是一個(gè)過(guò)程的見(jiàn)證吧. 首先得聲明,匠人是第一次用摩托羅拉的芯片,也是第一次用ANSI_C語(yǔ)言,所以手記中如有錯(cuò)誤和問(wèn)題,望大伙指點(diǎn). 01. C語(yǔ)言中嵌入?yún)R編的4種方式: //嵌入?yún)R編方式1(宏): EnableInterrupts; // 開(kāi)中斷 //嵌入?yún)R編方式2(可嵌入多條指令): asm { lda _PTB ; } //嵌入?yún)R編方式3(單條指令): asm eor #0b00000100 ; //嵌入?yún)R編方式4(單條指令): asm (" eor #4 "); 02. C語(yǔ)言中數(shù)的表示方式: ****舉例如下: 二進(jìn)制: 0b00000100 十進(jìn)制: 4 十六進(jìn)制: 0x4 ****注意:匯編指令的表示方式與C的表示方式不一樣,但如果是在C中嵌入?yún)R編,則也要按C的方式來(lái)寫(xiě) ****問(wèn)題:八進(jìn)制的引導(dǎo)符號(hào)還不知道 03. 循環(huán)體的3種寫(xiě)法: 寫(xiě)法1: while(1); { ...... } 寫(xiě)法2(推薦): for(;;); { ...... } 寫(xiě)法3: loop: ...... goto loop ****網(wǎng)友gtw答:CodeWarrior對(duì)恒為“真”的表達(dá)式編譯時(shí)經(jīng)常會(huì)有提示,很羅嗦,如while(1);不如用for(;;) 04. 關(guān)于復(fù)位及中斷的入口地址: 所有的入口地址都存儲(chǔ)在$FFD0~$FFFF區(qū)域中 比如:復(fù)位地址存儲(chǔ)在$FFFE~$FFFF中(缺省值=DC8C,即復(fù)位后從DC8C處開(kāi)始執(zhí)行) ****問(wèn)題:如何修改入口地址,還不清楚 ****網(wǎng)友gtw答:定義入口地址,有多種方法interrupt void (VECTOR_NUMBER) FUNC_NAME(void)即為其一,可以自動(dòng)設(shè)置。 05. 對(duì)被調(diào)函數(shù)的說(shuō)明(聲明): 1。如果被調(diào)用函數(shù)出現(xiàn)在主調(diào)用函數(shù)之后,則在調(diào)用之前應(yīng)該先對(duì)被調(diào)用函數(shù)的返回值類型作出說(shuō)明 一般形式,如:void delay(void); 2。如果被調(diào)用函數(shù)出現(xiàn)在主調(diào)用函數(shù)之前,則不需要作出說(shuō)明 3。如果被調(diào)用函數(shù)和主調(diào)用函數(shù)不在一個(gè)文件中,則說(shuō)明方式如下: extern void delay(void); //注:如果不作說(shuō)明,系統(tǒng)會(huì)警告,但也能進(jìn)入DEBUG狀態(tài) 06. 對(duì)中文支持: 缺省的系統(tǒng)環(huán)境對(duì)中文的支持不好,表現(xiàn)為按刪除鍵時(shí)回將中文刪除一半從而顯示亂碼. 解決方法是選擇[Edit]菜單下的[Preferences…],并按如下設(shè)置: 將EDIT0R中的font&tabs中改動(dòng): font選擇為宋體 script選擇為chinese_gb2312 ****注:也可以在這里設(shè)置TAB所代表的空格數(shù)(缺省是2) 07. 中斷定義有兩種方法: 方法一: #pragma TRAP_PROC void IntFunc1(void) { /* your code */ } In your prm file: VECTOR ADDRESS 0xFFF4 IntFunc1 /* 0xFFF4 contains the address of IntFunc1 */ 方法二: interrupt 3 IntFunc1() { …/*code*/ } Means that the third entry in the vector table is initialized with the address of IntFunc1(). 08. IO口在使用之前必須先初始化,否則會(huì)報(bào)錯(cuò) 09. 相關(guān)網(wǎng)址 ehua 發(fā)表于 2005-7-3 09:27 侃單片機(jī) ←返回版面 到這里看看吧: http://www.edatech.com/bbs/index.asp 下面是關(guān)于這個(gè)軟件的一些常見(jiàn)問(wèn)題: http://www.edatech.com/bbs/dispbbs.asp?BoardID=3&replyID=284&id=284&star=1&skin=0 10. 數(shù)據(jù)類型 類型 缺省格式 缺省范圍 可選格式 CHAR(unsigned) 8bit 0~255 8bit,16bit,32bit signed CHAR 8bit -128~127 8bit,16bit,32bit unsigned CHAR 8bit 0~255 8bit,16bit,32bit signed SHORT 16bit -32768~32767 8bit,16bit,32bit unsigned SHORT 16bit 0~65535 8bit,16bit,32bit enum(signed) 16bit -32768~32767 8bit,16bit,32bit signed int 16bit -32768~32767 8bit,16bit,32bit unsigned int 16bit 0~65535 8bit,16bit,32bit signed LONG 32bit -2147483648~2147483647 8bit,16bit,32bit unsigned LONG 32bit 0~4294967295 8bit,16bit,32bit signed LONG LONG 32bit -2147483648~2147483647 8bit,16bit,32bit unsigned LONG LONG 32bit 0~4294967295 8bit,16bit,32bit 1. 定義寄存器 C51 : volatile unsigned CHAR Bank1R0 _at_ 0x |
12樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/4 17:57:00 發(fā)布:
pheavecn所說(shuō)的自己做的是哪塊板? 我手頭這套包括2塊板,其中一塊有原理圖可以自己做,但另一塊接PC 的沒(méi)有原理圖而且看上去也蠻復(fù)雜的。 另:多謝各位關(guān)注。手記有點(diǎn)凌亂,大伙擔(dān)待些 |
13樓: | >>參與討論 |
作者: HIGHWAY 于 2005/7/4 18:02:00 發(fā)布:
呵呵,不錯(cuò)啊,大家多看看MOT也很好啊 |
14樓: | >>參與討論 |
作者: pheavecn 于 2005/7/4 18:19:00 發(fā)布:
是指一頭接串口,一頭接IRQ/RESET/PB0~PB3的板。 就是調(diào)試時(shí)老是要你"Turn MCU POWER off(Under 0.1V)"的東東。 我給條經(jīng)驗(yàn): 如果你的電源接了大電容,最好先拿掉,或接個(gè)電阻在電源端,否則要等很久才掉電干凈,進(jìn)調(diào)試模式不方便。 |
15樓: | >>參與討論 |
作者: 我的未來(lái) 于 2005/7/4 23:18:00 發(fā)布:
喜歡 |
16樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/8 22:55:00 發(fā)布:
MC68HC908JL8匠人應(yīng)用手記_續(xù) 13. IO口使用注意事項(xiàng) 1. IO口的方向寄存器中內(nèi)容與方向的關(guān)系 0代表輸入 1代表輸出 需要注意的是,這一點(diǎn)與其它一些芯片(如PIC,EMC,HT)正好相反 2.IO口在使用之前必須先初始化,否則會(huì)報(bào)錯(cuò) 14. 關(guān)于強(qiáng)制類型轉(zhuǎn)換 符號(hào): () 使用方法: (類型)(表達(dá)式) 使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符可以將一個(gè)表達(dá)式轉(zhuǎn)換成所需的類型; 在強(qiáng)制轉(zhuǎn)換時(shí),得到一個(gè)所需類型的中間變量,原來(lái)變量的類型不變; 在給指針變量賦值時(shí)特別有用,比如當(dāng)指針變量被定義為CHAR型,而需要將一個(gè)int型的變量地址賦值給該指針時(shí),如果不作轉(zhuǎn)換,則系統(tǒng)會(huì)報(bào)警告.這時(shí)做個(gè)類型轉(zhuǎn)化則可避免該問(wèn)題. 如: wrpage(0x0000,(CHAR *)&ccc,2) ; //說(shuō)明:由于ccc的數(shù)據(jù)類型為int型,所以要將其轉(zhuǎn)化為CHAR型 又如: tx((CHAR)(ADDR_24%256)); //送數(shù)據(jù)地址并檢測(cè)應(yīng)答信號(hào) //說(shuō)明:ADDR_24是int型數(shù)據(jù),要轉(zhuǎn)化為CHAR型 |
17樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/12 21:08:00 發(fā)布:
中斷的使用方法 15. 中斷的使用方法 關(guān)于中斷,有很多種方法,在AN2616中提到: 把#pragma TRAP_PROC 放在中斷程序前面,并把中斷向量表放到linker.prm。例如: #pragma TRAP_PROC void intSW1(void){ } ------------------------------------------------- 或者使用關(guān)鍵詞interrupt,并把向量表加入linker.prm。例如: interrupt void intSW1(void){ } ------------------------------------------------- 把向量表的首地址放入linker.prm。例如: VECTOR ADDRESS 0xFFD2 intSW1 ------------------------------------------------- 在定義中斷程序的時(shí)候使用關(guān)鍵詞"interrupt"并把特定的中斷向量號(hào)。這種方法不需要在linker.prm中更改任何東西。例如: interrupt 22 void intSW1(void){ } 這種方法有很明顯的優(yōu)點(diǎn),它把所有的東西都寫(xiě)在一個(gè)文件中,而不需要依賴于另一個(gè)文件。 |
18樓: | >>參與討論 |
作者: nishui 于 2005/7/13 12:55:00 發(fā)布:
歡迎 我一年半前在用FREESCALE的8位單片機(jī),現(xiàn)在用16位的單片機(jī)了,而且在做FREESCALE單片機(jī)的產(chǎn)品,希望大家一起交流學(xué)習(xí)啊。www.dyic.com.cn是我的網(wǎng)址 |
19樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/13 20:50:00 發(fā)布:
定時(shí)器中斷頻率的計(jì)算 16. 定時(shí)器中斷頻率的計(jì)算 公式: 中斷頻率=總線頻率/(分頻因子*計(jì)數(shù)器預(yù)置值) 注: 總線頻率=晶振頻率/4 分頻因子可設(shè)置為1,2,4,8,16,32,64 例如: 晶振頻率=8MHZ,總線頻率=2MHZ,分頻因子=32,預(yù)置值=625 中斷頻率=2000000/(32*625)=100HZ 又如: 晶振頻率=9.8304MHZ,總線頻率=2.4567MHZ,分頻因子=1,預(yù)置值=65536(0X10000) 中斷頻率=2457600/(1*65536)=37.5HZ 再如: 晶振頻率=9.8304MHZ,總線頻率=2.4567MHZ,分頻因子=64,預(yù)置值=19200(0X4B00) 中斷頻率=2457600/(64*19200)=2HZ ------------------------------------------------- 初始化程序如下: //定時(shí)器1初始化 //晶振頻率=9.8304MHZ,總線頻率=2.4567MHZ //中斷頻率=總線頻率/(分頻因子*預(yù)置值)=2457600/(64*19200)=2HZ T1SC=0b01000110 ; //開(kāi)中斷,分頻因子=64 T1MODH=0x4B; //預(yù)置值=0x4B00 T1MODL=0x00; ------------------------------------------------- |
20樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/24 23:02:00 發(fā)布:
如何產(chǎn)生LST文件 17. 如何產(chǎn)生LST文件 系統(tǒng)缺省時(shí)不會(huì)產(chǎn)生LST文件.如果需要查看LST文件,可以: 1. 選擇菜單[edit]->[P&E ICD SETTINGS] 2. 在彈出窗口中選擇[TARGET]->[ASSEMBLER FOR ……](匯編);或[COMPILER FOR ……](C) 3. 在窗口右邊點(diǎn)擊[options] 4. 在新彈出窗口中切換到[OUTPUT]頁(yè) 5. 在[generate listing file]前打勾即可 18. 問(wèn)題 1.當(dāng)使用定時(shí)器的某個(gè)通道作為定時(shí)器時(shí),該通道對(duì)應(yīng)的IO口作普通IO口用,該如何處理? |
21樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/24 23:09:00 發(fā)布:
那天被代理害了.... 他老人家給我一塊仿真板,卻不舍得給電源,還告訴我說(shuō)用9V電源;結(jié)果我一上電....就一陣青煙....然后板子就報(bào)廢了.我仔細(xì)一瞅,原來(lái)是該用5V供電. 心痛啊~~~~~~~~~~ |
22樓: | >>參與討論 |
作者: computer00 于 2005/7/25 0:06:00 發(fā)布:
那你也太沖動(dòng)了吧?是不是剛拿到板,太激動(dòng)了?嘿嘿 迫不及待的就上電了? 我這里有兩片MC68HC908JB8,帶USB接口的,一直想玩玩,可惜一直沒(méi)去弄它們, 哎,哪天沒(méi)事干了,就搬出來(lái)玩玩吧。拿來(lái)做個(gè)USB接口的電腦紅外遙控器 不錯(cuò)。 |
23樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/25 8:08:00 發(fā)布:
不是沖動(dòng),而是基于對(duì)代理商FAE的信任。。。 |
24樓: | >>參與討論 |
作者: 宇宙飛船 于 2005/7/25 8:44:00 發(fā)布:
樓主的調(diào)試器用哪個(gè),我沒(méi)有摩托牌照,也想考摩托牌。 |
25樓: | >>參與討論 |
作者: syz528555 于 2005/7/25 8:57:00 發(fā)布:
我有兩套代理尚送的仿真板. 一套仿JK系列,一套GP32系列.其實(shí)就是MOTO的MON8接口,從串口,并口,或USB 模擬出MON8的幾個(gè)腳定義,從這幾只腳對(duì)MCU進(jìn)行操作,如下載CODE,讀CODE,單步,設(shè)斷點(diǎn). 我用JK做過(guò)產(chǎn)品,資源夠豐富,選型多,豐儉由人,老少皆宜,開(kāi)發(fā)方便. 就是買貨不方便,交期長(zhǎng),價(jià)錢貴.好象MOTO對(duì)散兵游勇興趣不大. 我把它作為超級(jí)大候補(bǔ),一般不動(dòng)用.除非我來(lái)做一個(gè)"勇氣"號(hào),哈哈. |
26樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/25 12:05:00 發(fā)布:
是呀,產(chǎn)品牛比,人也牛比,不好交道 |
27樓: | >>參與討論 |
作者: xuhuadong 于 2005/7/25 13:30:00 發(fā)布:
真是牛人用c,看你的c比看你的匯編還累 |
28樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/25 18:01:00 發(fā)布:
xuhuadong多擔(dān)待些,匠人已聲明自己是第一次用C了 有些習(xí)慣一時(shí)改不過(guò)來(lái) |
29樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/25 18:04:00 發(fā)布:
關(guān)于堆棧指針的初始化問(wèn)題,誰(shuí)來(lái)指點(diǎn)一下? 不知該如何處理。牛人們來(lái)指點(diǎn)一下? |
30樓: | >>參與討論 |
作者: computer00 于 2005/7/25 18:41:00 發(fā)布:
C語(yǔ)言編譯器會(huì)自動(dòng)初始化堆棧吧? |
31樓: | >>參與討論 |
作者: hotpower 于 2005/7/25 18:54:00 發(fā)布:
我也感覺(jué)奇怪...估計(jì)是AC人的愛(ài)好吧... 正在做ARM菜鳥(niǎo),有空也跟匠人做個(gè)"68菜鳥(niǎo)" http://www.21icbbs.com/club/bbs/bbsview.asp?essenceid=6698 |
32樓: | >>參與討論 |
作者: computer00 于 2005/7/25 19:01:00 發(fā)布:
好,我也要來(lái)湊熱鬧。 編譯器是使用code warrror,那燒寫(xiě)軟件呢?是通過(guò)串口燒寫(xiě)的嗎? 匠人有空的話就給我多點(diǎn)信息吧,省得我跑到網(wǎng)上去搜索了,呵呵。。。 |
33樓: | >>參與討論 |
作者: syz528555 于 2005/7/25 19:14:00 發(fā)布:
第三方提供燒寫(xiě)軟件、如P&E company 第三方提供燒寫(xiě)軟件、如P&E |
34樓: | >>參與討論 |
作者: 最愛(ài)韶涵 于 2005/7/25 19:23:00 發(fā)布:
不一定,至少EW78K,要自己配置XCL文件 |
35樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/25 22:50:00 發(fā)布:
嘿嘿,匠人是摸著石頭過(guò)河. |
36樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/25 23:05:00 發(fā)布:
關(guān)于堆棧指針...困惑中... 為何有此一問(wèn),源于今天和代理商FAE的一番交談,他老人家讓我嚇了一跳,他告訴我當(dāng)堆棧溢出時(shí),系統(tǒng)不會(huì)報(bào)告錯(cuò)誤信息,也就是說(shuō)我要自己計(jì)算程序?qū)Χ褩5淖畲笙?并由此設(shè)置堆棧指針. 說(shuō)實(shí)話,匠人不知道C語(yǔ)言里如何計(jì)算堆棧消耗.因?yàn)橛行〤指令,系統(tǒng)會(huì)自動(dòng)調(diào)用函數(shù).而且系統(tǒng)經(jīng)常喜歡把一些數(shù)據(jù)臨時(shí)壓入堆棧.我這個(gè)超級(jí)菜鳥(niǎo)無(wú)法判斷程序到底用了多少層堆棧 晚上運(yùn)行DEMO程序看了一下,發(fā)現(xiàn)C語(yǔ)言編譯器確實(shí)會(huì)自動(dòng)初始化堆棧(好像是187H?),而且一開(kāi)始的兩條指令就是設(shè)置堆棧.匠人只是不明白系統(tǒng)自動(dòng)設(shè)置堆棧的原理是什么,不知它依據(jù)什么來(lái)判斷?還是統(tǒng)一設(shè)置為187H? |
37樓: | >>參與討論 |
作者: computer00 于 2005/7/25 23:09:00 發(fā)布:
那你還好過(guò)了,你的河里還有石頭可以摸。而我的河呢? 里邊全是泥沙,連個(gè)石頭都沒(méi)得摸,只好里邊胡亂瞎游了。還要擔(dān)心被河水沖走了^_^ |
38樓: | >>參與討論 |
作者: computer00 于 2005/7/25 23:17:00 發(fā)布:
一般編譯器都會(huì)使用最優(yōu)的方式來(lái)設(shè)置堆棧地址 比如51,51的堆棧的向上生長(zhǎng)的,所以51的編譯器盡量將所有變量放在RAM的低地址 段。而把堆棧指針也盡量往低地址移。如果沒(méi)有指定變量地址,那么所有變量 都在前面,后邊的全部都作為堆棧來(lái)使用。這樣保證有最多的堆?梢杂谩 的確堆棧溢出時(shí)不會(huì)報(bào)警,我以前就吃過(guò)這樣的虧,害我調(diào)試了好久,郁悶死了。 51是把普通函數(shù)的臨時(shí)變量重疊處理了,所以函數(shù)中的變量不會(huì)壓棧,只是要 保存返回地址需要壓棧。這樣函數(shù)多了,棧就用光了。 |
39樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/25 23:17:00 發(fā)布:
computer00別灰心,匠人的條件比你好不到哪去 基本上也是東一榔頭西一榔頭的在搗鼓.你只要看看我這手記就知道有多亂了,^_^ |
40樓: | >>參與討論 |
作者: hotpower 于 2005/7/25 23:20:00 發(fā)布:
我ARM菜鳥(niǎo)3天快畢業(yè)了,你還困在SP中???如何反彈??? 今天網(wǎng)友exdata同志給我掃了一個(gè)大地雷... 哈哈,這回我就可把"ARM的牢底來(lái)坐穿"...雖然我連ARM長(zhǎng)什么樣都不知道!!! 不象你們大上海坐地鐵...我們每天下地都過(guò)水坑... http://www.21icbbs.com/club/bbs/ShowAnnounce.asp?v=&ID=1747443 |
41樓: | >>參與討論 |
作者: computer00 于 2005/7/25 23:29:00 發(fā)布:
幸好我一開(kāi)始就用的C語(yǔ)言開(kāi)發(fā),也弄個(gè)幾個(gè)不算太小的程序 如那個(gè)MP3的源代碼,除了那個(gè)字庫(kù)的,另外的3K多行都是我一個(gè)個(gè)字敲出來(lái), 再怎么說(shuō),在C語(yǔ)言的鍵盤輸入功底上總能比匠人略勝一籌吧?嘿嘿。 MP3源代碼見(jiàn)下邊的連接。拿出來(lái)炫炫先,雖然在前輩眼里看來(lái)沒(méi)什么,不過(guò) 我還是自我感覺(jué)挺良好的, http://www.21icbbs.com/club/bbs/list.asp?boardid=25&page=2&t=1702031&tp=%u4E0A%u6B21%20%u786C%u76D8MP3%u64AD%u653E%u5668%20%u7684%u539F%u7406%u56FE%u53CA%u6E90%u4EE3%u7801%u6539%u8FDB%u7248 |
42樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/25 23:30:00 發(fā)布:
hotpower 就別挖苦匠人了, 您的武器是坦克----轟轟烈烈,咱這工具只有榔頭----敲敲打打.不是一個(gè)檔次嗎 |
43樓: | >>參與討論 |
作者: computer00 于 2005/7/25 23:37:00 發(fā)布:
匠人你應(yīng)該換個(gè)角度想問(wèn)題嘛, 你是榔頭,他是坦克,我是電腦。 電腦可以操縱坦克,但是對(duì)你的榔頭可是無(wú)可奈何。。。。。。 ![]() |
44樓: | >>參與討論 |
作者: aMonster 于 2005/7/26 9:10:00 發(fā)布:
看了匠人的筆記 看了第一篇還有點(diǎn)話說(shuō), 看了后面的就沒(méi)什么說(shuō)的了, 呵呵, 匠人進(jìn)步很快啊~~ 沒(méi)有早點(diǎn)看到這個(gè)帖子 JL8用C是有點(diǎn)挑戰(zhàn)性的,尤其是在成本的束縛下, 更需要編出高效率,低容量,而通用性又不差的代碼啊~~ 呵呵 看來(lái)匠人有的頭疼了 |
45樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/26 12:43:00 發(fā)布:
aMonster所說(shuō)的挑戰(zhàn)是指什么? |
46樓: | >>參與討論 |
作者: 程序匠人 于 2005/7/26 12:52:00 發(fā)布:
轉(zhuǎn)貼,關(guān)于MON08 在MON08中疑惑的問(wèn)題? 我看可很多FREESCALE的單片機(jī)的datasheet,在MONITOR ROM一章中會(huì)提到有兩種進(jìn)入MONITOR rom的方式,一種為normal方式,一種為forced方式.forced方式較為簡(jiǎn)單,不需要占用太多的I/O口,不需要一個(gè)高電壓,但是它需要一個(gè)特殊的條件,就是 If $FFFE and $FFFF contain $FF 其中$FFFE and $FFFF 是復(fù)位時(shí)的地址,也就是說(shuō)只有在復(fù)位向量中包含FFFF,FFFF時(shí)在能進(jìn)入這種方式.我對(duì)這一點(diǎn)不是很理解.它的意思是不是在芯片中沒(méi)有程序的時(shí)候.才能進(jìn)入forced mode. 因?yàn)樵谏想姀?fù)位的時(shí)候,$FFFE and $FFFF 中的數(shù)據(jù)會(huì)裝入程序計(jì)數(shù)器中,我想問(wèn)下,$FFFE and $FFFF 中在芯片為空的時(shí)候是什么數(shù)據(jù)?在芯片非空的時(shí)候是什么數(shù)據(jù)? ---------------------------------------------- 立志做個(gè)專業(yè)的工程師 發(fā)貼時(shí)間: Jul 21 2005 9:15AM || strongchen 頭銜:版主 對(duì),$FFFE和$FFFF就是復(fù)位中斷的矢量地址。當(dāng)芯片為空時(shí),復(fù)位矢量也為空,其中的數(shù)據(jù)為$FFFF。當(dāng)芯片復(fù)位后,監(jiān)控程序會(huì)檢測(cè)復(fù)位矢量的值,如果發(fā)現(xiàn)數(shù)據(jù)為空(即為$FFFF),監(jiān)控程序會(huì)強(qiáng)制啟動(dòng),使芯片進(jìn)入監(jiān)控模式,即所謂的強(qiáng)制方式(forced)。 ---------------------------------------------- 海納百川 有容乃大 發(fā)貼時(shí)間: Jul 21 2005 9:56AM || 天涯倦客 那這種燒寫(xiě)方式意義好像不大啊,只有是空芯片才能進(jìn)入監(jiān)控方式.如果單只有這種方式,那好像就是一次性燒寫(xiě)了. ---------------------------------------------- 立志做個(gè)專業(yè)的工程師 發(fā)貼時(shí)間: Jul 21 2005 10:16AM || strongchen 頭銜:版主 所以還有一種正常方式(normal)。當(dāng)芯片不空時(shí),通過(guò)特殊電平的設(shè)置,仍可以進(jìn)入監(jiān)控模式。 ---------------------------------------------- 海納百川 有容乃大 發(fā)貼時(shí)間: Jul 21 2005 11:34AM || 天涯倦客 謝謝版主,這個(gè)我知道,但是這種方式需要占用一些I/O口,不過(guò)現(xiàn)在也在湊合著用.i/o口盡量復(fù)用吧 ---------------------------------------------- 立志做個(gè)專業(yè)的工程師 發(fā)貼時(shí)間: Jul 21 2005 11:45AM || strongchen 頭銜:版主 只是復(fù)位時(shí)需要幾個(gè)口線的電平設(shè)置。進(jìn)入監(jiān)控狀態(tài)后,只需一個(gè)口進(jìn)行通訊,其余的口線都被釋放,可用回正常功能。 ---------------------------------------------- |
47樓: | >>參與討論 |
作者: mcu2002 于 2005/7/31 23:20:00 發(fā)布:
up,關(guān)注中 我也正用到MC68HC908JL8芯片,希望以后大家可以多多交流. |
48樓: | >>參與討論 |
作者: 黃果樹(shù) 于 2005/8/1 0:24:00 發(fā)布:
re: code warrror功能強(qiáng)大,但是感覺(jué)界面沒(méi)有PIC的MPALB友好,特別是仿真時(shí)另外彈出一個(gè)窗口,不能在此窗口修改源代碼,編譯.煩! 聽(tīng)說(shuō)code warrror軟仿真功能強(qiáng)大,一直沒(méi)有琢磨過(guò),期望那天有高手出馬,寫(xiě)本教程! mon08的仿真模式,斷點(diǎn)只能設(shè)一個(gè),占用IO口,沒(méi)有經(jīng)驗(yàn)的很難連接上,連接上也會(huì)很容易死掉,必須復(fù)位..還不如一些小日本的mcu(也用片上仿真).目前我用過(guò)的最好的片上仿真的8bit mcu是ZILOG的新款FLASH mcu,專用一個(gè)DBG口仿真燒錄,一連就上.百發(fā)百中:) * - 本貼最后修改時(shí)間:2005-8-1 0:27:03 修改者:黃果樹(shù) |
49樓: | >>參與討論 |
作者: 黃果樹(shù) 于 2005/8/1 0:26:00 發(fā)布:
張明峰跳到FREESCALE了,匠人找他切磋切磋! |
50樓: | >>參與討論 |
作者: lufeijian 于 2005/8/1 1:24:00 發(fā)布:
哈哈!終于有人討論MC68HC08.html">MC68HC08的MCU了,好啊 我也在學(xué)習(xí)MC68的MCU,仿佛是在學(xué)8086。。。嘿嘿 |
51樓: | >>參與討論 |
作者: 勇敢的葉子 于 2005/8/4 11:09:00 發(fā)布:
我的捕捉中斷進(jìn)不去,能不能幫我看一下問(wèn)題出在哪呢? 我寫(xiě)的是一個(gè)用捕捉測(cè)頻率的小程序,剛開(kāi)始學(xué)著做,水平很差勁,在寫(xiě)中斷服務(wù)程序的時(shí)候總是進(jìn)不去啊, 我寫(xiě)了一段程序想看一下是不是進(jìn)入中斷了: #include <hidef.h> /* for EnableInterrupts macro */ #include <MC68HC908JL8.h> /* include peripheral declarations */ int i=0 ; interrupt 3 void read1 () { for (i=0;i<=1000;i++) { PTA=0XFD; PTB=0X3F; } T1SC0_CH0F=0; } void main() { EnableInterrupts; /* enable interrupts */ /* include your code here */ T1SC=0X42; T1MODH=0X03; T1MODL=0XE8; T1SC0=0XC4; DDRA=0XFF; DDRB=0XFF; DDRD=0XEF;/* 初始化 */ PTA=0XEF; PTB=0X5B; while (1) { ;} __RESET_WATCHDOG(); } 中斷之后讓數(shù)碼管顯示一個(gè)數(shù),可是總是沒(méi)有反映,是什么問(wèn)題呢? |
52樓: | >>參與討論 |
作者: 程序匠人 于 2005/8/10 22:24:00 發(fā)布:
經(jīng)驗(yàn)教訓(xùn) 20. 關(guān)于MON08調(diào)試的頻率 由于強(qiáng)制通訊波特率為FBUS/256,因此總線頻率受到主機(jī)軟件允許的標(biāo)準(zhǔn)波特率的限制 當(dāng)晶振=9.8304MHZ時(shí),內(nèi)部總線=9.8304/4=2.4576MHZ. 這里會(huì)有一個(gè)問(wèn)題,即調(diào)試時(shí)的工作頻率和產(chǎn)品的實(shí)際工作頻率不一致 21. 關(guān)于全局變量 全局變量必須在main的初始化中進(jìn)行初值設(shè)置, 否則,系統(tǒng)不會(huì)為其分配固定地址.這會(huì)導(dǎo)致變量中的數(shù)據(jù)丟失. 這個(gè)問(wèn)題讓匠人吃了許多藥 22. 關(guān)于運(yùn)算中需要注意的問(wèn)題 當(dāng)不同長(zhǎng)度的變量進(jìn)行運(yùn)算勢(shì),要特別當(dāng)心,避免某些變量被”截肢” //比如: unsigned LONG aaa; unsigned int bbb; unsigned int ccc; bbb=1000 ; ccc=2000; //下面的指令計(jì)算后,aaa并沒(méi)有如預(yù)期的變成20000000,而是變成了33920,原因是高位被裁減掉了 aaa=bbb*ccc; //改成下面的指令后,結(jié)果正確 aaa=ccc; aaa=aaa*bbb; |
53樓: | >>參與討論 |
作者: 程序匠人 于 2005/8/10 22:29:00 發(fā)布:
黃果樹(shù)說(shuō)的問(wèn)題確實(shí)困擾著匠人 mon08的仿真模式,斷點(diǎn)只能設(shè)一個(gè),占用IO口,沒(méi)有經(jīng)驗(yàn)的很難連接上,連接上也會(huì)很容易死掉,必須復(fù)位. |
54樓: | >>參與討論 |
作者: 黃果樹(shù) 于 2005/8/11 23:14:00 發(fā)布:
程序匠人!如果你的公司MCU用量大的話, 建議向代理商借一個(gè)8000RMB的那種仿真器.好用及了! |
55樓: | >>參與討論 |
作者: newcore 于 2005/8/11 23:20:00 發(fā)布:
好 好貼,偶正有這個(gè)東東的問(wèn)題,MARK一下。。。 匠人兄現(xiàn)在在做這個(gè)呀,呵呵,正好,有問(wèn)題可以找到人請(qǐng)教了:) 有空的話看看偶的問(wèn)題吧: http://www.21icbbs.com/club/bbs/list.asp?boardid=11&page=1&t=1771546&tp=MOTOROLA%20hc908ap64%u8FDE%u63A5%u51FA%u9519%3F 謝先! |
56樓: | >>參與討論 |
作者: yanfengzhu 于 2005/8/11 23:23:00 發(fā)布:
不錯(cuò) |
57樓: | >>參與討論 |
作者: yadog 于 2005/8/12 18:39:00 發(fā)布:
reMC68HC08匠人應(yīng)用手記 沒(méi)事兒也去瞅瞅 |
58樓: | >>參與討論 |
作者: 音樂(lè)樂(lè)樂(lè) 于 2005/8/14 17:53:00 發(fā)布:
請(qǐng)教匠人, ---全局變量必須在main的初始化中進(jìn)行初值設(shè)置, 否則,系統(tǒng)不會(huì)為其分配固定地址.這會(huì)導(dǎo)致變量中的數(shù)據(jù)丟失. 這是什么編譯器?我用過(guò)的編譯器怎么都沒(méi)有這個(gè)問(wèn)題?如果不賦值,則全局變量會(huì)自動(dòng)初始化為0吧? |
59樓: | >>參與討論 |
作者: agency1980 于 2005/8/14 19:44:00 發(fā)布:
終于有人討論MOTO 我也是MOTO一族!使用JL8,QY4,LK24等! |
60樓: | >>參與討論 |
作者: 程序匠人 于 2005/8/14 23:43:00 發(fā)布:
音樂(lè)樂(lè)樂(lè),我也在困惑中.... 我舉個(gè)例子: 有一個(gè)變量,我在程序中對(duì)其的賦值最多只有3種狀態(tài):0,1,2. 按理,不論何時(shí)停下程序,查看該變量都應(yīng)該在0~2之間吧?但實(shí)際上我發(fā)現(xiàn)每次數(shù)據(jù)都亂跳了.后來(lái)沒(méi)辦法在初始化段里加了一條賦值語(yǔ)句居然就好了. 今天發(fā)現(xiàn)有些變量即使在初始化中加了賦值語(yǔ)句也沒(méi)用(感覺(jué)是數(shù)據(jù)被沖掉了).還請(qǐng)高手們指點(diǎn)迷津呢! |
61樓: | >>參與討論 |
作者: 雁舞白沙 于 2005/8/15 0:16:00 發(fā)布:
什么好MCU ?改天我也用用! |
62樓: | >>參與討論 |
作者: 程序匠人 于 2005/8/15 0:18:00 發(fā)布:
轉(zhuǎn)貼:這幾天在研究面費(fèi)的M68uics08得到一個(gè)結(jié)論 >>歡迎您,請(qǐng)先登陸 | 注冊(cè) | 網(wǎng)友通信簿 | 排行 | 搜索 | 修改資料 | 退出登錄 中電網(wǎng)專業(yè)技術(shù)論壇 飛思卡爾?半導(dǎo)體(FREESCALE SEMICONDUCTOR, Inc.)[返回] 瀏覽:這幾天在研究面費(fèi)的M68uics08得到一個(gè)結(jié)論 您是本帖的第 114 個(gè)閱讀者 * 貼子主題: 這幾天在研究面費(fèi)的M68uics08得到一個(gè)結(jié)論 liu1234 這幾天在研究面費(fèi)的M68uics08得到一個(gè)結(jié)論 以qt4為例:ics mon08進(jìn)入監(jiān)控時(shí)不需用戶關(guān)心pta1,pta4的0、1狀態(tài),即使j9-j13的跳線完全斷開(kāi)也沒(méi)有關(guān)系,而cyclone mon08必需關(guān)心這兩腳的0、1狀態(tài)否則無(wú)法進(jìn)入監(jiān)控模式j(luò)9必需1,j10必需0,以上結(jié)論對(duì)否,請(qǐng)指正 ---------------------------------------------- liu1234就是我,歡迎訪問(wèn)我的博客http://www.mcublog.com/blog.asp?NAME=liu1234 發(fā)貼時(shí)間: Jul 19 2005 1:40PM || strongchen 頭銜:版主 我認(rèn)為應(yīng)該是,當(dāng)芯片為空時(shí),PTA1和PTA4的狀態(tài)無(wú)需關(guān)心;而芯片非空時(shí),要進(jìn)入監(jiān)控模式,必須在IRQ腳上加高電壓,且PTA1必須為1,PTA4必須為0。 ---------------------------------------------- 海納百川 有容乃大 發(fā)貼時(shí)間: Jul 19 2005 1:55PM || liu1234 我也認(rèn)為這個(gè)結(jié)論是錯(cuò)的,可是說(shuō)明書(shū)上這段話怎么理解 3.2. Cyclone MON08 接口 Cyclone MON08 接口要求用戶注意進(jìn)入監(jiān)控模式的I/O 腳的限制(例如當(dāng)進(jìn)入監(jiān)控模式時(shí),某 些腳必須拉高或拉低)。另一方面,Cyclone MON08 可以供給目標(biāo)系統(tǒng)電源和時(shí)鐘信號(hào)。具體的 信息請(qǐng)參見(jiàn)Cyclone 用戶手冊(cè)。 3.3. ICS MON08 接口 ICS MON08 接口不要求用戶注意進(jìn)入監(jiān)控模式的I/O 腳的條件(也就是說(shuō)如果需要進(jìn)入監(jiān)控模 式,M68UICS08 板自己會(huì)處理)。目標(biāo)電源和時(shí)鐘信號(hào)是由T7 和T8 提供的。 使用ICS MON08 接口時(shí)有下述要求: MON08 接口連接的目的是提供一個(gè)將MCU 與目標(biāo)系統(tǒng)板其他部分隔離的方法。所有連到MON08 接 插口的MCU 信號(hào)都不應(yīng)再連到目標(biāo)板的其他任何地方(地線除外)。當(dāng)MON08 連接不用時(shí), MON08 接插口的腳3-4、5-6、7-8、9-10、11-12、13-14、15-16,以及MON08 的腳1 到1 個(gè)腳的插頭間要加上短接跳線。這樣就將目標(biāo)MCU 與目標(biāo)板完全連接起來(lái),從而允許目標(biāo)系統(tǒng)的 正常運(yùn)行。當(dāng)MON08 電纜加在M68UICS08 和目標(biāo)板之間,即使目標(biāo)MCU 在目標(biāo)板上,也可以對(duì) 它進(jìn)行編程和調(diào)試等操作。 除了復(fù)位時(shí),M68UICS08 將MODE1# .. MODE5#與TGT_MODE1# .. TGT_MODE5#連通。復(fù)位 時(shí),MODE1# .. MODE5#有電壓加在上面從而配置MCU,使其復(fù)位后進(jìn)入相應(yīng)的模式。(即監(jiān)控 模式的條件可以通過(guò)M68UICS08 的J9 到J13 來(lái)設(shè)置)。PTA0 及PTB0 和PTB1 不用連到 TGT_xxxx,因?yàn)檫@些信號(hào)用于與調(diào)試軟件的串行通訊。 復(fù)位和外部中斷(/IRQ)信號(hào)的上拉應(yīng)該放在MON08 接插頭的目標(biāo)板一邊,而不應(yīng)放在MCU 那 一邊。將復(fù)位或外部中斷(/IRQ)腳連接出去可能導(dǎo)致無(wú)法通過(guò)MON08 進(jìn)行調(diào)試,還可能引起目 標(biāo)板上元器件的損壞,因?yàn)檫@些腳上的信號(hào)電壓可能高達(dá)7.5Vdc。請(qǐng)參見(jiàn)3.4 應(yīng)用示例,它推 薦了將MCU 連接到MON08 接插頭以及目標(biāo)板其他部分的原理圖。 這個(gè)接插頭可以布置成8 行× 2 列,間距為0.1 英寸的通孔,用導(dǎo)線將相應(yīng)的信號(hào)腳相連,這 樣,以后經(jīng)MON08 接口調(diào)試完成的板子不用再給每個(gè)MON08 信號(hào)加短接跳線就能作為產(chǎn)品板使 用。當(dāng)然對(duì)于那些要用MON08 接口調(diào)試的板子,則須將導(dǎo)線割斷并安上一個(gè)連接到M68UICS08 的接插頭。此時(shí)再要恢復(fù)正常運(yùn)行, 就要加短接跳線了。請(qǐng)參見(jiàn)附帶的 M68EPA08QTQY/M68EPA08JLJK 電路板 ---------------------------------------------- liu1234就是我,歡迎訪問(wèn)我的博客http://www.mcublog.com/blog.asp?NAME=liu1234 發(fā)貼時(shí)間: Jul 19 2005 1:59PM || strongchen 頭銜:版主 這段話的意思就是,當(dāng)采用Cyclone MON08接口方式時(shí),所有的口線電平都要在用戶的目標(biāo)板上配置;而采用ICS08 MON08接口方式時(shí),M68UICS08已在主板上對(duì)相應(yīng)口線進(jìn)行了配置,所以用戶的目標(biāo)板上就無(wú)需再去配置。 ---------------------------------------------- 海納百川 有容乃大 發(fā)貼時(shí)間: Jul 19 2005 2:20PM || liu1234 我總結(jié)如下:1、當(dāng)芯片為空時(shí),PTA1和PTA4的狀態(tài)無(wú)需關(guān)心;而芯片非空時(shí),要進(jìn)入監(jiān)控模式,必須在IRQ腳上加高電壓,且PTA1必須為1,PTA4必須為0。2、當(dāng)采用Cyclone MON08接口方式時(shí),用戶必需注意進(jìn)入監(jiān)控條件的引腳電平不要與目標(biāo)板的實(shí)際連接電平相沖突,M68UICS08主板未對(duì)二者進(jìn)行隔離,但提供時(shí)鐘和電源信號(hào),而ics mon08接口M68UICS08主板對(duì)二者進(jìn)行隔離,使得僅在復(fù)位時(shí)進(jìn)入監(jiān)控條件的引腳電平與目標(biāo)板的實(shí)際連接不相通(為目標(biāo)板提供進(jìn)入監(jiān)控條件的電平),脫離復(fù)位狀態(tài)后二者是相通的,但不提供時(shí)鐘和電源信號(hào)。3、二者實(shí)際上都是利用mcu的mon08接口,沒(méi)有本質(zhì)的區(qū)別 ---------------------------------------------- liu1234就是我,歡迎訪問(wèn)我的博客http://www.mcublog.com/blog.asp?NAME=liu1234 發(fā)貼時(shí)間: Jul 19 2005 5:04PM || liu1234 關(guān)于M68UICS08主板和m68eptqx連接問(wèn)題 1嚴(yán)格按照說(shuō)明書(shū)跳線 2串口線至少需要4芯兩個(gè)db9,2-2,3-3,4-4,5-5即可。 ---------------------------------------------- liu1234就是我,歡迎訪問(wèn)我的博客http://www.mcublog.com/blog.asp?NAME=liu1234 發(fā)貼時(shí)間: Jul 19 2005 5:08PM || angel007 兩個(gè)板子就那么幾個(gè)跳線,跳來(lái)跳去,也不通啊。 有沒(méi)有可能MCU燒了? 發(fā)貼時(shí)間: Jul 19 2005 5:23PM || 天涯倦客 芯片為空是什么意思?是不是指芯片沒(méi)有被寫(xiě)過(guò).如果這樣的話,那豈不是一次性芯片. 我在DATASHEET上看到有兩種燒寫(xiě)程序的方式.一種是normal MONITOR mode另一種是forced MONITOR mode.normal MONITOR mode需要9v高壓,且需要幾個(gè)i/o口要固定點(diǎn)平.forced MONITOR mode相對(duì)簡(jiǎn)單.不需要高壓.但是有一個(gè)條件(If $FFFE and $FFFF contain $FF),這一點(diǎn)看不懂,是不是就是你們所說(shuō)的芯片為空? 另外覺(jué)得FREESCALE的mcu燒寫(xiě)實(shí)在是麻煩! ---------------------------------------------- 立志做個(gè)專業(yè)的工程師 發(fā)貼時(shí)間: Jul 19 2005 5:56PM || liu1234 $FFFE and $FFFF 內(nèi)容為 $FF是空芯片?沒(méi)有用戶程序當(dāng)然是空芯片了。 ---------------------------------------------- liu1234就是我,歡迎訪問(wèn)我的博客http://www.mcublog.com/blog.asp?NAME=liu1234 發(fā)貼時(shí)間: Jul 19 2005 6:12PM || liu1234 搞不懂你們?cè)趺磿?huì)連不通這塊板子還是比較好用的,照我說(shuō)的來(lái),通用板這邊j1接電源9v,j2標(biāo)準(zhǔn)dte到dce的標(biāo)準(zhǔn)串口線(一頭公DB9,一頭母DB9各芯線一一對(duì)應(yīng),不要交叉),波特率9600,j3,1-2,j4,CLOSE,j5,1-2,j6,1-2,j7,1-2,j8連到評(píng)估板的t8,j9,1-2,j10,2-3,j11,1-2,j12,2-3,j13,1-2 評(píng)估板這邊j1j2j3CLOSE,p2-p5,u1插qt4芯片靠底安裝,t7連通用板的T7,t3連通用板的t3,t1,3-4,5-6,7-8,9-10,11-12,13-14,15-16,1-右邊的單針1。 先運(yùn)行編程軟件看芯片能否燒寫(xiě),此時(shí)通用板兩個(gè)led都會(huì)亮 ---------------------------------------------- liu12 |
63樓: | >>參與討論 |
作者: xuhuadong 于 2005/8/16 11:07:00 發(fā)布:
mon08的仿真功能仿不了多斷點(diǎn),太累了 我用過(guò)mcuez508的SR12仿真器,10000元的,很好用,就是很笨重,后來(lái)他們送了一個(gè)mon08,連最基本的鎖項(xiàng)環(huán)都仿不了,只能放一個(gè)斷點(diǎn)。 |
64樓: | >>參與討論 |
作者: mgf006 于 2005/8/17 9:19:00 發(fā)布:
是不是比KEIL 好用呀。。 是不是比KEIL 好用呀。。我沒(méi)有用過(guò)呀。。 在那能找到教程? |
65樓: | >>參與討論 |
作者: boy123 于 2005/8/17 22:05:00 發(fā)布:
好,,我也來(lái)學(xué)學(xué).. 這里也有Motolora單片機(jī)討論專版. 加密是$FFF6~$FFFD共8個(gè)byte的內(nèi)容,可以從S19中設(shè)置,也可在P&E中設(shè)置。 用P&E 時(shí),Target MCU Security bytes 選項(xiàng)(目標(biāo) MCU安全碼) 要通過(guò)安全碼檢測(cè)就必須給出正確的安全碼,安全碼由處理器 FLASH存儲(chǔ)器的$FFF6到$FFFD八字節(jié)組成。編程軟件連續(xù)地記錄安全碼的改變,并把它們存儲(chǔ)到 SECURITY.INI文件中,用于安全碼檢測(cè)。用戶使用“User”文本對(duì)話框手動(dòng)設(shè)置安全碼,或者點(diǎn)擊“Load from S19”從相同的 s19文件中調(diào)用安全碼。忽略安全碼檢測(cè)失敗并進(jìn)入監(jiān)控模式(IGNORE security failure and enter MONITOR mode ):該選擇框使軟件能忽略安全碼檢測(cè)錯(cuò)誤,并進(jìn)入監(jiān)控模式(要保證波特率和通訊口設(shè)置正確,電源正確)。但不能進(jìn)入 FLASH存儲(chǔ)器。只能對(duì)整片 MCU的 FLASH進(jìn)行擦除后方可進(jìn)行編程燒錄和校驗(yàn)。 如果正確地進(jìn)入監(jiān)控模式,軟件讀取$FFF6到$FFFF的內(nèi)容,判定處理器是否通過(guò)了安全碼檢測(cè),檢測(cè)到的返回值是$AD,說(shuō)明存儲(chǔ)器是無(wú)效的或被加密。如果從$FFF6到$FFFF的所有字節(jié)讀的值均是$AD,說(shuō)明芯片被加密,標(biāo)志值是‘N’。如果 0到 5 的標(biāo)志值是‘Y’,標(biāo)志 6的值是‘N’,那么復(fù)位過(guò)程已經(jīng)正確進(jìn)行,僅安全碼檢測(cè)沒(méi)有通過(guò)。制定正確的安全碼,重試一次,或者忽略安全碼檢測(cè)。 |
66樓: | >>參與討論 |
作者: 程序匠人 于 2005/8/17 22:27:00 發(fā)布:
都是堆棧惹的禍! 上次的問(wèn)題解決了,原來(lái)是因?yàn)槎褩R绯鰧AM中的正常數(shù)據(jù)沖掉了.今天將堆棧的尺寸設(shè)置的大些,困擾多日的問(wèn)題就解決了. 一直以為code warrior會(huì)自動(dòng)分配堆?臻g,現(xiàn)在才知道高估它的智慧了. |
67樓: | >>參與討論 |
作者: 陳雙君 于 2005/8/19 13:07:00 發(fā)布:
5646456 20. 關(guān)于MON08調(diào)試的頻率 由于強(qiáng)制通訊波特率為FBUS/256,因此總線頻率受到主機(jī)軟件允許的標(biāo)準(zhǔn)波特率的限制 當(dāng)晶振=9.8304MHZ時(shí),內(nèi)部總線=9.8304/4=2.4576MHZ. 這里會(huì)有一個(gè)問(wèn)題,即調(diào)試時(shí)的工作頻率和產(chǎn)品的實(shí)際工作頻率不一致 21. 關(guān)于全局變量 全局變量必須在main的初始化中進(jìn)行初值設(shè)置, 否則,系統(tǒng)不會(huì)為其分配固定地址.這會(huì)導(dǎo)致變量中的數(shù)據(jù)丟失. 這個(gè)問(wèn)題讓匠人吃了許多藥 22. 關(guān)于運(yùn)算中需要注意的問(wèn)題 當(dāng)不同長(zhǎng)度的變量進(jìn)行運(yùn)算勢(shì),要特別當(dāng)心,避免某些變量被”截肢” //比如: unsigned LONG aaa; unsigned int bbb; unsigned int ccc; bbb=1000 ; ccc=2000; //下面的指令計(jì)算后,aaa并沒(méi)有如預(yù)期的變成20000000,而是變成了33920,原因是高位被裁減掉了 aaa=bbb*ccc; //改成下面的指令后,結(jié)果正確 aaa=ccc; aaa=aaa*bbb; |
68樓: | >>參與討論 |
作者: mcu2002 于 2005/8/20 9:03:00 發(fā)布:
MC68HC908JL8加密設(shè)置問(wèn)題 如DATASHEET所說(shuō),$FFCF地址單元的FLBPR寄存器為加密設(shè)置寄存器,其燒寫(xiě)數(shù)值小于$70時(shí)全部FLASH存儲(chǔ)器內(nèi)容全部被加密,但是使用M68UICS08調(diào)試半仍然可以讀出FLASH存儲(chǔ)區(qū)的內(nèi)容,是不是我的設(shè)置方法有問(wèn)題,或者是別的加密方法,請(qǐng)指教,謝謝! |
69樓: | >>參與討論 |
作者: qjy_dali 于 2005/8/20 9:38:00 發(fā)布:
匠人指責(zé)code warrior分配堆棧是沒(méi)有道理的 code warrior for MC68HC08會(huì)為應(yīng)用生成一個(gè)啟動(dòng)代碼,里面有堆棧大小設(shè)置。比如我的堆棧大小就是0x60,這可以自己改呀。很多設(shè)置都要小心 |
70樓: | >>參與討論 |
作者: xiexpeng 于 2005/8/31 22:27:00 發(fā)布:
怎樣把程序?qū)懞谩?br> |
71樓: | >>參與討論 |
作者: crazybee 于 2005/9/3 21:19:00 發(fā)布:
22. 關(guān)于運(yùn)算中需要注意的問(wèn)題 22. 關(guān)于運(yùn)算中需要注意的問(wèn)題 當(dāng)不同長(zhǎng)度的變量進(jìn)行運(yùn)算勢(shì),要特別當(dāng)心,避免某些變量被”截肢” //比如: unsigned LONG aaa; unsigned int bbb; unsigned int ccc; bbb=1000 ; ccc=2000; //下面的指令計(jì)算后,aaa并沒(méi)有如預(yù)期的變成20000000,而是變成了33920,原因是高位被裁減掉了 aaa=bbb*ccc; //改成下面的指令后,結(jié)果正確 aaa=ccc; aaa=aaa*bbb; aaa = (unsigned LONG)bbb*ccc;//效率會(huì)更高哦! |
72樓: | >>參與討論 |
作者: 程序匠人 于 2005/9/4 14:01:00 發(fā)布:
多謝crazybee指點(diǎn),匠人又學(xué)了一招 |
73樓: | >>參與討論 |
作者: newcore 于 2005/9/8 18:21:00 發(fā)布:
借問(wèn) 借匠人大哥的寶坻,請(qǐng)問(wèn)一下:Bin文件轉(zhuǎn)換成S19據(jù)說(shuō)可以用BinToS19這個(gè)工具,這個(gè)工具的指令格式是怎么樣的??? 3KS a lot!!! |
74樓: | >>參與討論 |
作者: mailbert 于 2005/9/23 13:35:00 發(fā)布:
FLBPR不是加密設(shè)置寄存器! FLBPR寄存器是FLASH寫(xiě)保護(hù)設(shè)置寄存器。因?yàn)閖l8可以in application program,就是程序可以自己寫(xiě)FLASH。為防使誤寫(xiě)入,可以設(shè)置FLBPR把FLASH全部或部分保護(hù)起來(lái)。這個(gè)寄存器與程序加密無(wú)關(guān)。 |
75樓: | >>參與討論 |
作者: 阿西西里 于 2005/9/23 14:18:00 發(fā)布:
用過(guò)MOTOROLA16位的,呵呵,還不錯(cuò) 就是調(diào)試(BDM)方式不太舒服! 比起DSP有些麻煩 |
76樓: | >>參與討論 |
作者: lang5312 于 2005/10/5 19:15:00 發(fā)布:
學(xué)習(xí)keil51中 |
77樓: | >>參與討論 |
作者: namexxh 于 2007/12/26 13:49:34 發(fā)布:
關(guān)于C語(yǔ)言寫(xiě)FLASH 請(qǐng)問(wèn)有哪位大俠用C語(yǔ)言寫(xiě)過(guò)MC68HC908GT16的內(nèi)部FLASH的嗎?怎么寫(xiě)?請(qǐng)賜教,先謝謝啦! |
78樓: | >>參與討論 |
作者: 混凝土 于 2008/1/6 11:55:01 發(fā)布:
請(qǐng)問(wèn)大俠有沒(méi)有飛思卡爾芯片的教程 |
79樓: | >>參與討論 |
作者: 光劍 于 2008/3/11 15:53:54 發(fā)布:
我和67樓的仁兄遇到同樣的問(wèn)題,請(qǐng)其他高手指點(diǎn)一下! |
|
|
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào) |