久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6207|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

硬件仿真與燒寫程序結(jié)果不一樣原因總結(jié)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:101093 發(fā)表于 2017-8-14 10:18 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
一.配置問題:
實(shí)際燒片時(shí)單片機(jī)的配置字與仿真的時(shí)候是不是一樣?燒寫時(shí)是否配置正確?

二.資源問題:
單片機(jī)的ROM、RAM大小與仿真器的ROM、RAM大小是不一樣的!

三.驅(qū)動(dòng)能力問題:
通常仿真器的驅(qū)動(dòng)能力比單片機(jī)要強(qiáng);可以分兩步檢查,一是分別用仿真器與單片機(jī)時(shí)對應(yīng)IO口波形進(jìn)行對比,二是當(dāng)仿真器與外設(shè)連接與不連接時(shí)波形的對比;

要進(jìn)行基本要素分析:單片機(jī)供電正常?起振沒有?復(fù)位電路正常?芯片損壞?

單片機(jī)上電不運(yùn)行情況的分析 1.單片機(jī)是沒有運(yùn)行,還是運(yùn)行不正確?

2.如果是沒有運(yùn)行,檢測單片機(jī)的基本參數(shù)是否已經(jīng)滿足<工作電壓要在芯片的引腳處測量><復(fù)位引腳的復(fù)位曲線如何><晶振是否已經(jīng)起振><芯片損壞,或者部分功能損壞>。

3.如果是運(yùn)行不正確,檢測<用了看門狗,沒有處理好,芯片上電后處于不停的復(fù)位狀態(tài),看起來就象沒有沒有工作起來><是否進(jìn)入了ISP狀態(tài)><對單片機(jī)寫入對所有的IO口以1秒取反一次的程序進(jìn)行測試>

單片機(jī)調(diào)試辦法
用LED進(jìn)行狀態(tài)指示,用串口進(jìn)行數(shù)據(jù)指示,比用其它外設(shè)指示更可靠;

加入斷點(diǎn),燒寫時(shí)是在不同的語句后面加入WHILE(1);

分模塊調(diào)試,把每個(gè)小功能先調(diào)試通過,再進(jìn)行組合。

Keil C本身就是編譯與仿真一體的,當(dāng)不要外部數(shù)據(jù)時(shí)很方便,當(dāng)要外部輸入時(shí)(比如用定時(shí)器作計(jì)數(shù)器用)它提供幾個(gè)調(diào)試輸入用的窗口可用它們來摸擬輸入,同時(shí)Keil C本身提供一種調(diào)試函數(shù)用來配置摸擬外部輸入的功能,這我在學(xué)習(xí)時(shí)看的一本書上講過如用定時(shí)器作外部事件計(jì)數(shù),調(diào)試函數(shù)由自己根據(jù)需要按特定的格式來編輯再按KEIL C的要求調(diào)入即可。學(xué)習(xí)時(shí)可用這種方法,做產(chǎn)品時(shí)最好是用仿真器調(diào)試。下面我給出我以前試過的用定時(shí)器作外部事件計(jì)數(shù)時(shí)摸擬外部輸入的調(diào)試函數(shù),并寫出Keil C調(diào)用的步驟如下: 
1、編寫如下信號(hào)函數(shù):  single void t0_singal(void)  {  while(1)  {  PORT3|=0x10;//pull INT0(P3.4) high again  PORT3&=~0x10;//pull INT0(P3.4) low and generate interrupt  PORT3|=0x10;//pull INT0(P3.4) high again  twatch(CLOCK);//wait for 1 second  }  }  2、在DEBUG狀態(tài)下單擊DEBUG菜單在下拉菜單中單擊“Function Editor(Open Ini File)... "選項(xiàng), 彈出新屏幕后,將“打開”窗口關(guān)閉,這時(shí)屏上有Function Edito窗;  3、在Function Editor窗中輸入上面的函數(shù);  4、保存(注意:擴(kuò)展名為.ini),編譯該程序,成功后關(guān)閉Function Editor窗口;  5、執(zhí)行用戶程序(必須連續(xù)執(zhí)行);  6、在屏幕左下腳的命令窗口中,鍵入t0_singl()后(必須回車)媽可向P3.4源源不斷地提供脈沖信號(hào)。

Keil C調(diào)試某系統(tǒng)時(shí)積累的一些經(jīng)驗(yàn)1、由于Keil C對中文支持不太好,因而會(huì)出現(xiàn)顯示的光標(biāo)與光標(biāo)實(shí)際所在不一致的現(xiàn)象,這會(huì)對修改中文注釋造成影響。在Windows2000下面,我們可以把字體設(shè)置為Courier,這樣就可以顯示正常。

2、當(dāng)使用有片外內(nèi)存的MCU(如W77E58,它有1K片外內(nèi)存)的時(shí)候,肯定要設(shè)置標(biāo)志位,并且編譯方式要選擇大模式,否則會(huì)出錯(cuò)。

3、當(dāng)使用Keil C跟蹤程序運(yùn)行狀態(tài)的時(shí)候,要把引起Warning的語句屏蔽,否則有可能跟蹤語句的時(shí)候會(huì)出錯(cuò)。

4、在調(diào)用數(shù)組的時(shí)候,Keil C是首先把數(shù)組Load進(jìn)內(nèi)存。如果要在C中使用長數(shù)組的時(shí)候,我們可以使用code關(guān)鍵字,這樣就實(shí)現(xiàn)了匯編的DB的功能,Keil C是不會(huì)把標(biāo)志code的數(shù)組Load入內(nèi)存的,它會(huì)直接讀取Rom。

5、當(dāng)編程涉及到有關(guān)通信,時(shí)序是很重要的。拉高管腳的執(zhí)行速度遠(yuǎn)遠(yuǎn)比檢查管腳電平的要快。

6、在等待管腳電平變化的時(shí)候,我們需要設(shè)置好超時(shí)處理,否則程序就會(huì)因?yàn)橐粋(gè)沒有預(yù)計(jì)的錯(cuò)誤而死鎖。

7、能用C語言實(shí)現(xiàn)的地方,盡量不要用匯編,尤其在算法的實(shí)現(xiàn),用匯編是晦澀難懂。

8、程序的幾個(gè)參數(shù)數(shù)組所占篇幅很大,其中液晶背景數(shù)組最長,有四千個(gè)Byte,因而把那些初始化數(shù)組都放在另外一個(gè)C文件,在主文件使用使用關(guān)鍵字extern定義,這樣就不會(huì)對主文件的編寫造成干擾。

9、所有函數(shù)之間的相關(guān)性越低越有利于以后功能的擴(kuò)展。

10、6.20版在編譯帶code關(guān)鍵字的數(shù)組時(shí),編譯通過但是單片機(jī)運(yùn)行結(jié)果是錯(cuò)誤的,改用6.14版后正常。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产亚洲精品综合一区 | 成人在线观看中文字幕 | 国产成人精品一区二 | 日韩电影一区二区三区 | 久久久久久久国产 | 久草网址| 国产精品久久久久久福利一牛影视 | 欧美午夜一区二区三区免费大片 | 精品一区二区三区在线观看 | 午夜精品福利视频 | 精品视频在线观看 | 青青草原综合久久大伊人精品 | 99一区二区| 色视频成人在线观看免 | 免费观看成人av | 久久亚洲国产 | 日韩中文一区 | 国产中文一区二区三区 | 三级国产三级在线 | 中文字幕日韩在线观看 | 久久国产精品免费一区二区三区 | 久一精品| 久久久精彩视频 | 国产精品一区二区不卡 | 一区二区免费 | 久久这里只有精品首页 | 国产精品久久久久久婷婷天堂 | 国产精品一区二区av | 亚洲综合色视频在线观看 | 日本在线视 | 91成人小视频 | 亚洲精品视频一区 | 欧美亚洲另类丝袜综合网动图 | 久久免费视频观看 | 日本不卡在线观看 | 欧美一区日韩一区 | 麻豆av一区二区三区久久 | 五月花丁香婷婷 | av网站在线播放 | 日韩免费视频一区二区 | 日本一区不卡 |