久久精品99久久_亚洲一区二区综合_狠狠色伊人亚洲综合成人_亚洲综合爱爱久久网

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術中心 >> 單片機入門 >> 淺談單片機調試方法

淺談單片機調試方法

關鍵字:單片機 調試 作者:admin 來源:不詳 發布時間:2018-05-18  瀏覽:38

1. 利用I/O

1.1 利用LED進行可視化管理

這種方法需要有多余的I/O。(如果可能,也可以將實現次要功能的I/O暫時借來一用。)

其電路很簡單,一個LED通過限流電阻接到VCC電源。I/O設置為輸出方式。

我們可以用下面的宏來定義LED的操作。

#define LED_YELLOW_ON() PA6D=0

#define LED_YELLOW_OFF() PA6D=1

#define LED_YELLOW_FLASH() PA6D^=1

舉個例子說明它的用法。在低功耗的產品設計中,我們一般采用“睡眠à醒來工作à睡眠à醒來工作”的工作模式,其程序結構如下:

while(1)

{

HLT = 1; //進入睡眠

nop();

clear_WDT(); //清看門狗

//醒來,處理各種事務

}

如果我們在程序醒來時點亮LED,事務處理完畢時熄滅LED,那么我們就能“看見”程序的工作狀態,LED將周期性地閃爍。這就是我們稱之為可視化管理的原因。(不記得在哪本書上看到“可視化管理”這個概念,我借用一下)

其軟件結構是這樣:

while(1)

{

HLT = 1; //進入睡眠

nop();

clear_WDT(); //清看門狗

LED_YELLOW_ON(); // debug

//醒來,處理各種事務

LED_YELLOW_OFF(); // debug

}

其實有些仿真器已經提供了這種監視程序睡眠狀態的方法。如果沒有提供,就可以用以上方法自行實現。

它的使用很靈活。比如可以用來在雙時鐘系統中監視快時鐘的打開和關閉情況(慢時鐘一般總是打開,因為要用作實時時鐘的時鐘源,而且慢時鐘耗電很小)。你可以在打開快時鐘時點亮LED,關閉快時鐘時熄滅LED,這樣一來快時鐘的打開和關閉就一目了然了。

你也可以在某個中斷中將LED的狀態取反(使用LED_YELLOW_FLASH()),用來監視此中斷的產生是否正常。雖然設置斷點也可以知道中斷是否產生,但會中斷程序的執行,造成不便。

如果你想知道程序有沒有執行到某個地方,你也可以將LED_YELLOW_FLASH()放到該位置。

依次類推,你可以用這個方法觀察任何你想觀察的事件。

當然你必須互斥地觀察不同的事件。就是說,對于一個LED,在一次調試中,一般只能觀察一個事件,否則你自己也弄不清LED的變化到底是代表發生哪一事件。

另外,你還可以同時使用兩個或者更多不同顏色的LED來監視不同的事件,前提你有多余的I/O。

不中斷程序的執行,又能看到程序的執行情況,應該說是一種很有效的調試程序的方法。相比開發工具所提供的單步、斷點、觀察變量等調試手段,這可以算是一種有效的補充。

1.2 利用示波器測試時間

利用上面的方法,再加一個示波器,就可以測量程序執行的時間了。(你可以自己決定接不接LED)。

比如,在初始化程序中,在打開總中斷之前,寫如下代碼:

LED_YELLOW_ON();

nop();

LED_YELLOW_OFF();

使用示波器,在捕獲模式下,你應該能捕獲到一個脈沖,測試它的寬度,假如為30.5us。以OKI ML610Q431為例,一條nop指令包括1 cycles,1 cycles包括1 system clock。這里system clock等于振蕩周期。(注意,不同的單片機對cycles, system clock的定義是不同的,需要參考各自的用戶手冊)。

那么我們可以這樣計算振蕩器的頻率:1*1*(1/f)=30.5/1000000.

f=32786Hz

當然,如果示波器測量精度不夠,可以多放幾個nop指令,計算時再求平均。如果嫌示波器的捕獲模式太麻煩,還可以采用循環結構,輸出一串方波。比如:

while(1)

{

LED_YELLOW_ON();

nop();

LED_YELLOW_OFF();

nop();

clear_WDT(); //清看門狗

}

這種方法的使用也很靈活。你可以用來測試主循環的執行時間,調用某個函數所花的時間,以及某個中斷處理的時間(不包括響應中斷和退出中斷的時間)等等。

當你發現某些時候主循環的執行時間特別長時,可以采用逐步縮小范圍的方法來找出到底是哪個函數花費時間長,有沒有可能將其優化。

下面是測試主循環執行時間的程序結構。

while(1)

{

HLT = 1; //進入睡眠

nop();

clear_WDT(); //清看門狗

LED_YELLOW_ON(); // debug

Fun1();

Fun2();

Fun3();

Fun4();

LED_YELLOW_OFF(); // debug

}

如果發現上面的執行時間異常(比如太長),你可以調整測試的位置,如下所示:

while(1)

{

HLT = 1; //進入睡眠

nop();

clear_WDT(); //清看門狗

Fun1();

LED_YELLOW_ON(); // debug

Fun2();

Fun3();

Fun4();

LED_YELLOW_OFF(); // debug

}

這樣,你就可以確定執行時間過長是不是因為Fun1()引起。如果不是,則繼續調整測試位置,逐個排除,直到找到真正費時的函數,對其進行分析,看看有沒有可能優化。

當然,我們還可以用兩個或更多I/O對多個事件進行邏輯分析,觀察他們的先后順序以及測試其時間間隔。這種方法也很有用,很靈活。在此不詳述。

2. 利用LCD進行可視化管理

如果你的產品帶LCD顯示,又沒有多余的IO可供調試,或者你只是想臨時的調試某個功能,那么你可以臨時使用LCD上的某個圖標來指示某個事件。當某個事情發生時,顯示該圖標,否則清除該圖標。

如果想在程序運行中獲得更復雜、更豐富的信息,可以對不同的事件顯示不同的數值。

3. 小結

不中斷程序的執行,又能觀察程序的執行情況,應該說是一種很有效的調試程序的方法。相比開發工具所提供的單步、斷點、觀察變量等調試手段,這可以算是一種有效的補充。

實際上,這些調試方法很像PC應用開發的printf調試手段。它可以在不打斷程序運行

的情況下,借助于I/O,LED,示波器,數碼管或LCD顯示,給出各種各樣的提示信息,幫助我們調試程序。

編輯:admin  最后修改時間:2018-05-18

聯系方式

0755-82591179

郵箱:ivy@yingtexin.net

地址:深圳市南山區桃源街道平山社區平山一路2號南山云谷創業園二期11棟410-411

Copyright © 2014-2026 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

久久精品99久久_亚洲一区二区综合_狠狠色伊人亚洲综合成人_亚洲综合爱爱久久网
欧美h视频在线观看| 人妻久久久一区二区三区| 久久精品国产精品亚洲色婷婷| 色18美女社区| 在线视频日韩欧美| 一本之道在线视频| 国产又粗又大又爽的视频| 看全色黄大色大片| 国产精品视频网站在线观看| 亚洲一区 在线播放| 99久久免费观看| 1024av视频| 黑鬼大战白妞高潮喷白浆| 无码少妇一区二区三区芒果| 三级在线免费看| 911福利视频| 免费看黄色a级片| 欧美日韩精品在线一区二区| www插插插无码视频网站| 日本不卡在线观看视频| jizzzz日本| www成人免费| 日日碰狠狠丁香久燥| 亚洲黄色av片| 国产精品69久久久| 国产一级做a爰片久久| a级黄色片网站| 成人av一级片| 2021狠狠干| 麻豆av免费在线| 97在线免费视频观看| 欧美日韩国产精品激情在线播放| 女人高潮一级片| 丝袜老师办公室里做好紧好爽| 国内自拍第二页| 精品视频一区二区在线| 日本黄网站色大片免费观看| 欧美日韩一道本| 国产91在线亚洲| 亚洲一级免费观看| 无码人妻精品一区二区三区在线| 17c国产在线| 日韩手机在线观看视频| a级片一区二区| 在线播放黄色av| 爱情岛论坛vip永久入口| 人人干视频在线| 性做爰过程免费播放| 美女一区二区三区视频| 黄色成人在线免费观看| www.com污| 中文字幕 91| www.99av.com| 青青草av网站| 国产精品丝袜久久久久久消防器材| 咪咪色在线视频| 8x8x成人免费视频| 亚洲xxxx2d动漫1| 东北少妇不带套对白| 97精品国产97久久久久久粉红| 欧美日韩亚洲一二三| av免费观看大全| 精品中文字幕av| 日韩毛片在线免费看| av天堂永久资源网| 日韩精品一区中文字幕| 男女视频一区二区三区| 国产综合免费视频| 久久精品免费网站| 午夜免费高清视频| 久久综合在线观看| 粉嫩av一区二区三区天美传媒| 男人的天堂成人| 国产欧美精品aaaaaa片| 亚洲中文字幕无码av永久| 97国产精东麻豆人妻电影| 十八禁视频网站在线观看| 亚洲污视频在线观看| 亚洲一二三av| 中国黄色录像片| 欧美黑人经典片免费观看| 中文字幕永久视频| 成人不卡免费视频| 红桃一区二区三区| 久久精品99国产| 午夜av中文字幕| 极品美女扒开粉嫩小泬| 欧美成人黄色网址| 伊人国产精品视频| 日韩中文字幕在线视频观看| 黄色国产小视频| av磁力番号网| 日韩精品一区二区三区久久| 一级黄色录像在线观看| 无码 制服 丝袜 国产 另类| 国产又大又硬又粗| 亚洲高清视频免费| 国产日产欧美视频| 91制片厂免费观看| 美女一区二区三区视频| 超薄肉色丝袜足j调教99| 日韩久久一级片| 9l视频自拍9l视频自拍| 国产精品视频黄色| 国产av天堂无码一区二区三区| 中文字幕在线观看第三页| av中文字幕av| jizz大全欧美jizzcom| 给我免费播放片在线观看| www.久久91| 亚洲色精品三区二区一区| 精品国产一区二区三区无码| jizz18女人| 激情 小说 亚洲 图片: 伦| 欧洲精品在线播放| 欧美一级特黄aaaaaa在线看片| 亚洲精品一二三四五区| 97成人在线观看视频| 激情六月天婷婷| 亚洲高清av一区二区三区| 狠狠躁狠狠躁视频专区| 欧洲黄色一级视频| 免费一级特黄毛片| 日韩一级性生活片| 999一区二区三区| 日韩精品福利片午夜免费观看| 午夜xxxxx| 人人爽人人爽av| 在线一区二区不卡| 亚洲天堂一区二区在线观看| 亚洲人视频在线| 亚洲一二区在线观看| 天堂在线一区二区三区| 色播五月激情五月| 国产欧美精品一二三| 国产资源中文字幕| 中文字幕在线乱| www成人免费| 真人抽搐一进一出视频| av网站大全免费| 男人揉女人奶房视频60分| 岳毛多又紧做起爽| 亚欧在线免费观看| 亚洲精品综合在线观看| 最新av在线免费观看| 国产成人一区二区三区别| 丰满少妇久久久| 国产高潮免费视频| 99热都是精品| 国产成人久久婷婷精品流白浆| 国产精彩免费视频| 亚洲精品在线网址| 男女私大尺度视频| 杨幂毛片午夜性生毛片| 国产精品h视频| 日韩欧美精品在线观看视频| 三年中国国语在线播放免费| 99精品视频国产| 黄色一级视频在线播放| 激情内射人妻1区2区3区 | 亚洲成熟丰满熟妇高潮xxxxx| 中文字幕乱码人妻综合二区三区| 成人午夜激情av| 福利视频一二区| www.午夜av| 免费无遮挡无码永久视频| 图片区乱熟图片区亚洲| 黄色免费视频大全| 久久99国产精品一区| 国产男女无遮挡| 久青草视频在线播放| 亚洲精品久久久中文字幕| 久久国产精品网| 超碰在线免费观看97| 成人3d动漫一区二区三区| 日本欧美视频在线观看| 人人爽人人爽av| 日日噜噜夜夜狠狠| 欧美色图色综合| 欧美男女爱爱视频| 中文 日韩 欧美| 日本肉体xxxx裸体xxx免费| 青青草视频在线免费播放| 亚洲国产精品女人| www.久久久久久久久久久| 日本a级片免费观看| 黄网站欧美内射| 成人免费在线网| 蜜臀av无码一区二区三区| 黄色录像特级片| 日韩不卡一二区| 小说区视频区图片区| 亚洲欧美日韩精品一区| 日本va中文字幕| 天天天干夜夜夜操| 黄色成人免费看| 色国产在线视频| 亚洲天堂av一区二区三区| 午夜视频在线观| 亚洲制服在线观看|