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