資源描述:
《c源程序調(diào)試方法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、c源程序調(diào)試方法:所謂源程序調(diào)試是指對程序的查錯和排錯,一般應(yīng)經(jīng)過以下幾個步驟:1進行靜態(tài)檢查寫好一個程序后,不要匆忙用編譯器編譯,應(yīng)對寫好的源程序進行人工檢查,這一步是十分重要的,它能發(fā)現(xiàn)程序設(shè)計人員由于疏忽而造成的大多錯誤。為了減少編程錯誤,在編寫程序屮應(yīng)力求做到以下幾點:①應(yīng)當采用結(jié)構(gòu)化程序方法編程,以增加可讀性。②應(yīng)盡可能多加注釋,以幫助理解每段程序的作用。③在編寫復(fù)雜的程序時,不要將全部的語句都寫在main函數(shù)中,而要多利用函數(shù),用一個函數(shù)來實現(xiàn)單獨的功能,既易于閱讀也便于調(diào)試。各函數(shù)Z間除了用參數(shù)傳遞數(shù)據(jù)這一渠道外,能夠不用其他的渠道就盡量不用,數(shù)據(jù)間應(yīng)盡量減
2、少耦合的關(guān)系。2、上機動態(tài)檢查調(diào)試,根據(jù)編譯器提示的語法錯誤,提出編譯器提示的全部錯誤(error)并一一改正,直到通過編譯,生成下載文件或調(diào)試文件,還應(yīng)該仔細檢查編譯器的警告(warning)信息,確認所有的警告信息并不會影響編譯結(jié)果的正確性。有時,編譯器的錯誤提示并非正確,而且出錯的情況繁多且各種錯誤相互關(guān)聯(lián),因此要善于分析,找岀真正的錯誤。3、Studio環(huán)境中進行硬件仿真或軟件仿真。測試的目的是為了測試軟硬件能否在各處復(fù)雜的情況下正常工作,在測試時應(yīng)當盡可能地將程序流程中的各分支和各種極限情況都測試一次,程序運行結(jié)果不對,大多屬于邏輯錯誤,應(yīng)將源程序與流程圖仔細對
3、照,是很容易發(fā)現(xiàn)錯誤的。軟件思想:本系統(tǒng)主耍是用Mega16主控單片機,控制液品顯示,輸入鍵盤和電機的運行,Mega16單片機根據(jù)鍵盤輸入指令,運行相應(yīng)的程序。當選擇學(xué)習(xí)示教程序時,就是運用鍵盤控制電機的運行,然后記錄電機運行的相關(guān)速度和最終的坐標到相應(yīng)的寄存器,并在液品顯示器中顯示學(xué)習(xí)示教程序運行狀態(tài),使用戶更好的進行電機設(shè)置和了解電機的運行狀態(tài)。根據(jù)以上的控制思想,本系統(tǒng)決定以AVR系列的Mcgal6單片機為主控芯片,利用其定時器T1的硬件PWM功能來方便的實現(xiàn)對步進電機的控制。利用其標準的T/0口的強驅(qū)動能力與直流電機驅(qū)動器相配合來實現(xiàn)對直流電機的驅(qū)動。利用外?部中
4、斷INT2對底盤脈沖進行計數(shù),以實現(xiàn)對底盤直流電機的定位。利用Mega16內(nèi)部集成的EEPROM對控制過程的數(shù)據(jù)進行存儲,為系統(tǒng)的運行和示教提供數(shù)據(jù)。采用一個多路開關(guān)CD4051輸出6路控制量,而CD4051的選通地址A、B、C則決定了輸出控制哪一個自由度的屯機(詳見系統(tǒng)總體方框圖2-1)。同時,選通地址A、B、C也控制著數(shù)據(jù)選擇器74LS151的數(shù)據(jù)選通通道,這樣就保證了系統(tǒng)在控制一路電機運行時,兩片數(shù)據(jù)選擇器74LS151送入單片機的是相應(yīng)的(正、反)限位檢測量。鑒于本系統(tǒng)的控制量眾多,3系統(tǒng)硬件設(shè)計先對施釉機器人存入最佳施釉工作“曲線”,且每次調(diào)用只需非常簡單地將相
5、關(guān)的程序調(diào)入機器人的“當前”操作指令中。所以,一旦工件變化吋,機器人能以最快的速度適應(yīng)工作,噴涂出高質(zhì)量的釉面。這是人工難以達到的。對位姿誤差的精確控制是設(shè)計施釉機器人的關(guān)鍵。(1)工業(yè)機器人由于可以通過單片機(MCU)、嵌入式系統(tǒng)、DSP、PLC等工業(yè)控制技術(shù),“忠實”地重復(fù)最好的施釉路徑一一不管是利用最熟練的操作工“手把手”的示教,還是利用機器人的“曲線插補”功能,對工件外形曲線作“噴涂軌跡”的優(yōu)化操作編程。這樣,在工裝夾具的保證下,能對同一種陶瓷件坯胎做到施釉工藝一致,在釉料的化學(xué)物理性能保持不變的條件下,能保證每一個坯件都得到最佳的施釉工藝,從而保證釉面質(zhì)量的一致
6、性。施釉機器人以示教再現(xiàn)方式工作,各關(guān)節(jié)在每個位置的轉(zhuǎn)角值是預(yù)先記錄好的。當施釉機器人的噴槍對衛(wèi)生陶瓷進行噴釉時,根據(jù)施釉工藝的耍求手部應(yīng)有的位姿、角速度和角加速度由各個關(guān)節(jié)運動的角度、角速度及角加速度所決定。得到了施釉機器人各關(guān)節(jié)轉(zhuǎn)角、角速度、角加速度與手部位姿、角速度和角加速度的對應(yīng)關(guān)系。可施釉工藝要求對機械手臂的各個自由度位姿、角速度和角加速度由各個關(guān)節(jié)運動的角度、角速度及角加速度重復(fù)最好的施釉路徑并可形成連續(xù)的運動,并能嚴格通過AVR單片機來實現(xiàn)對施釉機器人的控制,并根據(jù)施釉工藝要求對機械手臂的各個自由度位姿進行控制、手臂的終端配備可靈活張合的噴嘴,由氣泵控制噴嘴
7、的開合,可對陶瓷產(chǎn)品進行噴釉。在相應(yīng)位置都有位置檢測信號用于定位。通過MCU可以對機械手臂的各個白由度轉(zhuǎn)軸進行精確的定位,并可形成連續(xù)的運動,并能嚴格控制噴嘴噴釉時間。控制。而且PWM功能還提供了輸出比較中斷,本設(shè)計可以要此中斷中對CP脈沖進行計數(shù),以實現(xiàn)對位置的控制。AVR系列單片機擁有多個外部中斷資源,十分適合應(yīng)用于檢測量從多的控制系統(tǒng)。AVR系列單片機擁有多個8/16位的定時/計數(shù)器,為系統(tǒng)控制提供了更多靈活性。3.2.2.1ATmegal6主要特點ATmegal6是AVR系列單片機中比較典型的芯片。這款芯片具備了AVR