真。本部分教程的重點(diǎn)將放在仿真器和 IDE 的實(shí)際使用上,針對(duì)每一個(gè)主題的詳細(xì)說(shuō)明請(qǐng)參考幫助文檔中的內(nèi) 容。本部分教程不包含原理圖的繪制,如果你對(duì) ISIS中的原理圖繪制不熟悉,你應(yīng)該先花時(shí)間學(xué)習(xí)第一部分教 程中的內(nèi)容。
通過(guò)本教程,我們不僅可以掌握 VSM Studio IDE 的基本仿真功能,還可以了解 Proteus VSM 中的各種調(diào)試和 測(cè)試工具。要學(xué)習(xí)本教程你將需要:
必須安裝 Proteus 8.0 版本或更高版本的軟件。如果沒(méi)有購(gòu)買(mǎi)專(zhuān)業(yè)版的軟件,可以從 Labcenter 的網(wǎng)站 上免費(fèi)下載這個(gè)軟件的試用版本,或者聯(lián)系 Proteus 軟件的大中華區(qū)總代理-廣州市風(fēng)標(biāo)電子技術(shù)有限公司
從 Proteus 的主頁(yè)啟動(dòng)新建工程向?qū)Вx擇“從開(kāi)發(fā)板”選項(xiàng),在“微控制器系列”列表框中選擇 PIC16,然 后從“開(kāi)發(fā)板”列表框選擇 F1 評(píng)估板(F1 Releas),點(diǎn)擊完成導(dǎo)入工程。
導(dǎo)入項(xiàng)目之后,在 Proteus 中可以看到兩個(gè)選項(xiàng)卡:F1 評(píng)估電路板的原理圖模塊和包含 Microchip 標(biāo)準(zhǔn)硬件驅(qū) 動(dòng)源代碼的 VSM Studio IDE,如下圖所示:
開(kāi)源的編譯器能夠直接從 Labcenter 的服務(wù)器上下載和安裝。需要收費(fèi)的編譯器,Proteus 將提供鏈接到相應(yīng)供 應(yīng)商網(wǎng)站的下載頁(yè)面。在這個(gè)例子里,使用的是 Hi-Tech 編譯器,如果還沒(méi)有安裝,則需要從微芯的網(wǎng)站下載:
3. 安裝完成后點(diǎn)擊對(duì)話框底部的“檢查全部”按鈕,Proteus 將自動(dòng)重新檢查所有的編譯器并進(jìn)行配置, 使得它能夠在 Proteus 中編譯源代碼。
到了這里,編譯器、源代碼和原理圖已全部準(zhǔn)備好了,使用 VSM Studio“構(gòu)建”菜單下的“構(gòu)建工程”命令(或 構(gòu)建圖標(biāo))編譯固件。
F1 評(píng)估板的示例程序可以顯示三種模式,時(shí)間,一溫度,和電位器的 ADC 采樣值?梢酝ㄟ^(guò)按下原理圖中的 控制按鈕來(lái)循環(huán)切換顯示模式,進(jìn)行交互式仿真。
當(dāng)處于溫度顯示模式時(shí),你可以在 MCP9800 傳感器上通過(guò)點(diǎn)擊遞增或遞減按鈕來(lái)調(diào)整溫度值。當(dāng)前的溫度值 是通過(guò) I2C 總線傳輸?shù)?PIC 處理器中,經(jīng)過(guò)處理以后顯示在 LCD 上的。
首先,Proteus 原理圖中的微控制器執(zhí)行編譯后的固件文件與真實(shí)世界中的 PIC 執(zhí)行編程的固件完全一樣。使 用 VSM Studio IDE 只是把燒寫(xiě) PIC 芯片的過(guò)程,變成把編譯成功后得到的文件發(fā)送給原理圖。
其次,你可能會(huì)注意到,原理圖中幾乎所有導(dǎo)線都使用了終端來(lái)結(jié)尾,并且終端都有一個(gè)名字。在原理圖中, 相同名字的兩個(gè)終端被認(rèn)為是相連的(像有一根虛擬的導(dǎo)線)。例如,溫度傳感器旁邊的 RC3 和 RC4 終端連 接到了 PIC 處理器中的 I2C 接口的兩個(gè)引腳上。我們喜歡使用這種方式進(jìn)行原理圖連線,因?yàn)榭梢员苊鈱?dǎo)線的交叉,并且可以將原理圖分割成容易識(shí)別的邏輯塊。如果你要了解更多關(guān)于這種連接方式的信息,可以閱讀 ISIS 的參考手冊(cè)。
例如,對(duì)于一個(gè)特別慢的計(jì)算機(jī),在這個(gè)仿真中調(diào)節(jié)到時(shí)鐘模式時(shí),仿真中 LCD 屏上顯示的時(shí)鐘與現(xiàn)實(shí)世界墻 上的掛鐘不是同時(shí)前進(jìn)的,但它卻總是會(huì)和狀態(tài)欄的仿真時(shí)間同步前進(jìn)。
按鍵可以在時(shí)間、溫度和電壓模式之間進(jìn)行切換,這樣我們就能很容易的在這里添加其它操作模式。首先,切 換到 VSM Studio IDE 選項(xiàng)卡,打開(kāi)文件 main.c(在項(xiàng)目中雙擊 main.c)。
接下來(lái),我們需要找到按鈕切換的程序塊來(lái)添加新的操作模式。最簡(jiǎn)單的方法就是搜索已有模式中的一個(gè),我 們可以在 VSM Studio 右鍵點(diǎn)擊編輯窗口,從彈出的菜單中選擇“查找”,在查找內(nèi)容下輸入“MODE_POT”。
查找到的第一個(gè)結(jié)果就是我們正要尋找的,也就是關(guān)于按鍵釋放后用于設(shè)置顯示模式的 switch 語(yǔ)句。在這里我 們只需要添加新的操作模式:
在這段代碼的下面還有另一個(gè) switch 語(yǔ)句,用于執(zhí)行當(dāng)前的顯示模式。同樣,我們需要加入我們的 case 語(yǔ)句 來(lái)調(diào)用我們的函數(shù)。
在這里你可以嘗試添加任何你想添加的動(dòng)作,但我們只做一些簡(jiǎn)單的動(dòng)作,比如在顯示器上顯示一個(gè)固定值, 并在 LED 上顯示二進(jìn)制的計(jì)數(shù)器。
最后一步是構(gòu)建工程。如果你的程序有錯(cuò)誤,在輸出窗口會(huì)得到編譯錯(cuò)誤,單擊這個(gè)錯(cuò)誤,會(huì)指示出問(wèn)題所在 的位置。
項(xiàng)才能修正鏈接錯(cuò)誤,例如需要在工程設(shè)置中加入“函數(shù)庫(kù)”的文件夾。 當(dāng)我們這次運(yùn)行仿真時(shí),我們使用按鍵來(lái)切換操作模式,直到進(jìn)入我們自己的模式(時(shí)間->溫度->電位器->測(cè)試),
示器,可以把其中一個(gè)頁(yè)面拖到另一個(gè)顯示器中,在兩個(gè)顯示器中同時(shí)觀察這兩個(gè)頁(yè)面。 但我們?cè)谡{(diào)試時(shí),通常更感興趣的是觀察代碼的單步運(yùn)行,同時(shí)觀察原理圖的某一小部分進(jìn)行驗(yàn)證。Proteus
頁(yè)面之間進(jìn)行切換,大大提高我們的調(diào)試效率。 在我們的教程的例子中,可以以溫度傳感器來(lái)說(shuō)明實(shí)時(shí)監(jiān)控窗口的使用,步驟如下:
如果做的過(guò)程中出現(xiàn)問(wèn)題,可以右鍵雙擊虛線框進(jìn)行刪除。同樣,如果虛線框的位置有問(wèn)題,也可 以右鍵點(diǎn)擊虛線框然后選擇“移動(dòng)對(duì)象”菜單進(jìn)行移動(dòng)。
其它可能需要我們?cè)诜抡孢^(guò)程中進(jìn)行觀察和控制的對(duì)象有按鍵、電位器和顯示元件(LCD)。我們可以重復(fù)上 面的操作,圍繞這些器件各自拖出虛線框,完成以后,你的原理圖看起來(lái)應(yīng)和下圖一樣。
當(dāng)全速運(yùn)行代碼時(shí),VSM Studio 頁(yè)面中的源代碼和變量的區(qū)域?qū)@示“仿真正在運(yùn)行”的消息。我 們將在下一節(jié)介紹調(diào)試工具的使用。
調(diào)試彈出窗口非常有用,它不僅將原理圖中標(biāo)記的區(qū)域顯示到調(diào)試環(huán)境中,而且還可以進(jìn)行交互仿真。例如, 如果點(diǎn)擊按鍵 S1,切換程序模式,你應(yīng)該會(huì)看到 LCD顯示 I2C 溫度傳感器的溫度值。如果你再調(diào)節(jié)溫度傳感 器的溫度,LCD 會(huì)反映出溫度的變化。
切換回到原理圖頁(yè)面,你會(huì)看到原理圖中的狀態(tài)和調(diào)試彈出窗口中的一樣。當(dāng)停止仿真(從仿真控制面板), 調(diào)試彈出窗口會(huì)消失,VSM Studio 將從調(diào)試狀態(tài)切換回設(shè)計(jì)編輯狀態(tài),你可以再次編輯和編譯你的源代碼。
Studio 頁(yè)面通過(guò)拖動(dòng)來(lái)調(diào)整調(diào)試彈出窗口的大小。 現(xiàn)在我們已經(jīng)配置完調(diào)試彈出窗口,來(lái)看看如何進(jìn)行使用調(diào)試工具進(jìn)行代碼的調(diào)試。
如上圖所示,Proteus 將自動(dòng)切換到 VSM Studio 頁(yè)面,我們可以看到:調(diào)試彈出窗口顯示在右手邊;主面板報(bào) 告“沒(méi)有源代碼”的信息;程序變量的列表放在屏幕的底部。在這個(gè)階段,仿真處于“已經(jīng)啟動(dòng)”的狀態(tài),電 路處在一個(gè)穩(wěn)定的工作點(diǎn),代碼還沒(méi)有執(zhí)行,也沒(méi)有時(shí)間的消逝。
源代碼窗口沒(méi)有顯示任何的源代碼,這是因?yàn)樵诋?dāng)前的程序計(jì)數(shù)器(PC=0)中沒(méi)有源代碼可以顯示。 你可以從窗口頂部的下拉框中選擇這個(gè)工程的任何源文件進(jìn)行查看。但我們先從 main.c 文件開(kāi)始,因?yàn)檫@個(gè)文
先來(lái)看看怎么設(shè)置斷點(diǎn),舉一個(gè)簡(jiǎn)單的例子——要在主函數(shù)的按鍵釋放處設(shè)置一個(gè)斷點(diǎn)。放置斷點(diǎn)最容易的方 法就是在希望放置斷點(diǎn)的代碼行進(jìn)行雙擊。斷點(diǎn)指示器(一個(gè)小紅點(diǎn))將會(huì)出現(xiàn)在源代碼窗口的代碼行左邊。 如果你誤設(shè)了一個(gè)斷點(diǎn),可以在這行再次雙擊(或從代碼窗口中點(diǎn)擊右鍵,在彈出的菜單中)進(jìn)行刪除或關(guān)閉。
到達(dá)斷點(diǎn)以后,我們可以通過(guò)源代碼窗口右上角或 VSM Studio 調(diào)試菜單中的常用命令單步執(zhí)行代碼。另外可 以使用快捷鍵 F10 和 F11 分別進(jìn)行單步跳過(guò)調(diào)試和單步進(jìn)入函數(shù)內(nèi)部調(diào)試。
如果需要查看程序執(zhí)行的細(xì)節(jié),具體到每一條指令的執(zhí)行過(guò)程。你可以在反匯編代碼中進(jìn)行代碼的匯編級(jí)單步 調(diào)試。右鍵點(diǎn)擊源碼窗口,從彈出的菜單中選擇“反匯編”,然后同之前一樣使用單步調(diào)試命令。
的,因?yàn)轱@示的結(jié)果就是由這些不完整的段組合起來(lái)的。 如果你想運(yùn)行到下一個(gè)按鍵釋放的狀態(tài),只需要按下仿真控制面板中的“運(yùn)行”按鈕,然后在調(diào)試彈出窗口中
電容不進(jìn)行放電,電機(jī)也失去了動(dòng)力。當(dāng)通過(guò)單步調(diào)試執(zhí)行指令,這些指令對(duì)系統(tǒng)產(chǎn)生作用以后,系統(tǒng)將再次 停止。調(diào)試時(shí),可以通過(guò)狀態(tài)欄看到時(shí)間前進(jìn)的信息。
還有一些其它非常有用的調(diào)試窗口,但在本教程沒(méi)有進(jìn)行介紹。這些調(diào)試窗口可以從 VSM Studio 的“調(diào)試” 菜單中啟動(dòng),并放到 IDE 的底部。在仿真暫停后,數(shù)據(jù)會(huì)顯示在相應(yīng)的窗口中。但是本教程將會(huì)在下一節(jié)單獨(dú) 介紹監(jiān)視窗口的功能和使用方法,因?yàn)樗容^特殊。
先點(diǎn)擊 Proteus 軟件底部的“運(yùn)行”按鈕開(kāi)始仿真,然后從 VSM Studio 的“調(diào)試”菜單中啟動(dòng)監(jiān)視窗口,監(jiān) 視窗口將出現(xiàn)在 IDE 的底部。
接下來(lái),右鍵單擊監(jiān)視窗口從彈出的菜單中選擇“使用名字添加監(jiān)視項(xiàng)”。這里我們想添加 ADC 寄存器 ADRESH 和 ADRESL,可以通過(guò)雙擊寄存器進(jìn)行添加,完成以后退出對(duì)話框,在監(jiān)視窗口中應(yīng)該有兩個(gè)我們剛剛添加的 監(jiān)視項(xiàng)。
如果你覺(jué)得以二進(jìn)制的形式顯示結(jié)果會(huì)更容易理解,可以更改項(xiàng)目的顯示格式。在監(jiān)視窗口中右鍵點(diǎn)擊每一項(xiàng), 將顯示格式改變成二進(jìn)制。
0x1FF 左右,所以我們可以在監(jiān)視項(xiàng)上設(shè)置觸發(fā)斷點(diǎn)的條件。通過(guò)右鍵點(diǎn)擊監(jiān)視項(xiàng)目,并從彈出菜單中選擇監(jiān) 視點(diǎn)的條件。在我們的例子中,即要在 ADRESH 等于0x01、ADRESL 小于或等于 0xFF 時(shí)暫停仿真。當(dāng)我們 從最大值開(kāi)始向下調(diào)節(jié)電位器,調(diào)節(jié)到中間位置時(shí)將會(huì)第一次觸發(fā)斷點(diǎn)。
設(shè)置好監(jiān)視條件以后,我們現(xiàn)在需要向下調(diào)節(jié)電位器,直到滿足條件時(shí)觸發(fā)斷點(diǎn)。同之前一樣,既可以在 VSM Studio 的調(diào)試彈出窗口中調(diào)節(jié)電位器,也可以切換到原理圖頁(yè)面進(jìn)行調(diào)節(jié)。當(dāng)斷點(diǎn)被觸發(fā)后,你應(yīng)該能看到兩 個(gè)監(jiān)視項(xiàng)的值是 0x01 和 0xFF。如果有需要的話,你可以在條件觸發(fā)的這點(diǎn)開(kāi)始單步執(zhí)行你的代碼進(jìn)行調(diào)試。
選項(xiàng)就可以關(guān)閉監(jiān)視點(diǎn)。 我們接下來(lái)討論硬件斷點(diǎn),在此之前,要先禁止監(jiān)視條件或刪除監(jiān)視項(xiàng),然后在仿真控制面板中按下停止按鈕
硬件條件發(fā)生時(shí)檢查代碼,例如想在 I2C 總線剛開(kāi)始動(dòng)作時(shí)進(jìn)行捕獲,我們可以像下面介紹的一樣在 I2C 總線 上設(shè)置一個(gè)硬件斷點(diǎn)。
先切換到原理圖選項(xiàng)卡,然后從左邊的模式選擇器中選擇電壓探針圖標(biāo)。接下來(lái)在編輯窗口中單擊,開(kāi)始進(jìn)行 探針的放置,移到鼠標(biāo)到總線的 SDA 線上,再次點(diǎn)擊左鍵放置探針。
點(diǎn)擊“確定”,按下運(yùn)行按鈕開(kāi)始仿真,你應(yīng)該會(huì)發(fā)現(xiàn)仿真幾乎立刻停止,并且在 VSM Studio 的源窗口中顯 示只執(zhí)行了一個(gè)命令將 SDA 設(shè)置成低電平。
這個(gè)斷點(diǎn)實(shí)際上是發(fā)生在初始化程序中,如果想要跳過(guò)這個(gè)斷點(diǎn),并且只在進(jìn)入 I2C 模式后被激活,這樣我們 就需要設(shè)置斷點(diǎn)的裝備時(shí)間,先要停止仿真,然后切換到原理圖模塊,像之前一樣編輯電壓探針 RC4 的屬性, 裝備時(shí)間設(shè)置成 1s。
假設(shè)我們想要檢查溫度傳感器 MCP9800 進(jìn)行 I2C 傳輸?shù)倪^(guò)程,無(wú)論是通過(guò)交互方式還是更傳統(tǒng)的圖表方式都 可以實(shí)現(xiàn)。
我們要做的第一件事就是整理原理圖,刪除我們先前使用過(guò)的各種斷點(diǎn)。你可以在原理圖中的探針上右鍵雙擊, 或點(diǎn)擊右鍵,從彈出的菜單中選擇“刪除”來(lái)刪除電壓探針,同樣,我們可以右鍵雙擊調(diào)試彈出窗口對(duì)象的邊 界刪除調(diào)試彈出窗口對(duì)象。
它會(huì)假定你主要的任務(wù)是進(jìn)行源代碼調(diào)試。由于我們現(xiàn)在需要分析信號(hào),所以我們移除調(diào)試彈出窗 口對(duì)象,以便仿真開(kāi)始后打開(kāi)的是原理圖頁(yè)面。
現(xiàn)在要做的第二件事就是放置和連接 I2C 調(diào)試器,選擇虛擬儀器模式,在對(duì)象選擇器列出了一系列交互式測(cè)量 工具,在我們的案例中,選擇 I2C 協(xié)議分析儀。
在起始點(diǎn)(I2C 調(diào)試器的引腳)直到光標(biāo)變成綠色,然后點(diǎn)擊左鍵開(kāi)始放置,移動(dòng)鼠標(biāo)到目標(biāo)點(diǎn)(光標(biāo)變成綠 色),最后點(diǎn)擊左鍵終止導(dǎo)線的放置,通過(guò)使用這種技術(shù)連接 SCL 和 SDA 到 I2C 總線,如下圖所示:
連上 I2C 協(xié)議分析儀以后,開(kāi)始仿真。應(yīng)該可以看到有一個(gè) I2C 的調(diào)試器窗口懸浮在原理圖上,并且有一些初 始化/識(shí)別的數(shù)據(jù)傳輸。如果想要查看溫度傳感器在 I2C總線上傳輸?shù)臄?shù)據(jù),我們需要按下原理圖中的按鍵切換 到溫度模式。
由于程序代碼會(huì)不斷查詢當(dāng)前的溫度值,因此 I2C 總線上會(huì)不斷有數(shù)據(jù)在傳輸。如果我們要分析數(shù)據(jù),應(yīng)該先 暫停仿真,然后才可以花一些時(shí)間來(lái)分析 I2C 數(shù)據(jù)傳輸?shù)脑敿?xì)過(guò)程。
如果 Proteus 工作在單一框架下,即 ISIS 與 VSM Studio 都以選項(xiàng)頁(yè)的方式存在于 Proteus 軟件框 架下,當(dāng)仿真暫停后,將自動(dòng)切換到 VSM Studio 選項(xiàng)頁(yè),因?yàn)?Proteus 會(huì)假定你對(duì)執(zhí)行的源代碼 感興趣。但不管怎樣,分析儀始終在最頂層。如果你想在同一時(shí)間查看原理圖和源代碼,你可以使 用調(diào)試彈出窗口,也可以將 VSM Studio 拖到 Proteus 外面,把原理圖和 VSM Studio 分開(kāi)。
I2C 協(xié)議分析儀中使用的語(yǔ)法是標(biāo)準(zhǔn)的 I2C 協(xié)議描述,你可以通過(guò)左邊的‘+’號(hào)展開(kāi)傳輸?shù)男蛄羞M(jìn)行查看。外 設(shè)元件(MCP9800)有一個(gè)標(biāo)準(zhǔn)的地址 0x90,因此我們以讀請(qǐng)求為例進(jìn)行說(shuō)明:序列以開(kāi)始位(S)開(kāi)發(fā),跟 著是一個(gè)讀請(qǐng)求 0x91(位 0 設(shè)置為 1 表示讀請(qǐng)求),后面跟著的是 0x1B(數(shù)據(jù))等等。接收到的數(shù)據(jù)(0x1B) 以十進(jìn)制顯示是 27,對(duì)應(yīng)外設(shè)元件(MCP9800)中當(dāng)前顯示的溫度值。
再次運(yùn)行仿真,你可以改變?cè)韴D中 MCP9800 的溫度值,然后再次停止,并檢查 I2C 調(diào)試器中的輸出來(lái)進(jìn)一 步理解 I2C 和 I2C 協(xié)議分析儀。
注意,像這樣不斷進(jìn)行輪詢的固件程序在性能方面有相當(dāng)大的開(kāi)銷(xiāo),因?yàn)?I2C 協(xié)議分析儀需要不斷的刷新顯示 數(shù)據(jù)。然而在大多數(shù)情況下,只是使用虛擬儀器進(jìn)行測(cè)試或調(diào)試,在測(cè)試或調(diào)試的過(guò)程中,仿真速度是次要的。 所有的調(diào)試窗口在不使用時(shí)都可以關(guān)閉,然后可以從 VSM Studio 或 ISIS 的“調(diào)試”菜單中重新打開(kāi)。
在這個(gè)時(shí)間段結(jié)束、仿真停止之前,仿真結(jié)果是看不見(jiàn)的。 鑒于上述情況,讓我們看看如何使用數(shù)字圖表來(lái)分析 I2C 總線上的數(shù)據(jù)傳輸。首先,右鍵雙擊 I2C調(diào)試器把 I2C
然后選擇圖表模式,并從對(duì)象選擇器中選中“數(shù)字圖表”,然后在你想放置圖表的位置左上角點(diǎn)擊左鍵,移動(dòng) 鼠標(biāo)到右下角,再次點(diǎn)擊左鍵完成圖表的放置。
注意,原理圖中的圖表不需要特別大,因?yàn)楫?dāng)我們要分析仿真結(jié)果時(shí),可以把圖表放大。 添加完圖表以后,我們現(xiàn)在就需要告訴它我們想要查看哪些導(dǎo)線上的信號(hào)。為此我們需要給導(dǎo)線附上探針,然
快捷鍵將返回原理圖的默認(rèn)視圖。 默認(rèn)情況下,電壓探針會(huì)自動(dòng)提取終端的名字為自己命名。但在我們的仿真中,對(duì)其重新命名讓它更有意義。
現(xiàn)在,導(dǎo)線上放置好了探針,而原理圖中也已經(jīng)放置好了的圖表。我們需要添加探針到圖表中讓圖表去測(cè)量探 針上的信號(hào),有幾種方法可以做到。最簡(jiǎn)單的方法就是將探針拖到圖表中,可以右鍵點(diǎn)擊探針,從彈出的菜單 中選擇移動(dòng)對(duì)象,然后移動(dòng)鼠標(biāo)到圖表之上,再次點(diǎn)擊左鍵完成添加;也可以左鍵點(diǎn)擊一次探針先選中,然后按下左鍵不放,移動(dòng)鼠標(biāo)到圖表之上,釋放左鍵即可完成添加操作,F(xiàn)在把這兩個(gè)探針添加到圖表中。
在原理圖的空白區(qū)域點(diǎn)擊左鍵將會(huì)取消選中任何當(dāng)前被選中的對(duì)象。通常在退出編輯屬性對(duì)話框以 后需要進(jìn)行這個(gè)操作,因?yàn)橥顺鼍庉媽傩詫?duì)話框以后對(duì)象仍然處于選中狀態(tài)。
我們準(zhǔn)備進(jìn)行仿真,但有一個(gè)嚴(yán)重的問(wèn)題。正如前面提到的,在基于圖表的仿真中,你不能和電路進(jìn)行交互式 操作,但是為了進(jìn)入溫度模式,觸發(fā) I2C 傳輸,我們需要點(diǎn)擊按鍵切換模式。由于我們不能按下按鍵,所以我 們需要給 PIC 加入一個(gè)等效的信號(hào),以便程序能切換到溫度模式。我們一般是這樣做的,選擇激勵(lì)源圖標(biāo),從 對(duì)象選擇器中選中脈沖激勵(lì)源,將這個(gè)激勵(lì)源放在按鍵右邊 RD2 終端的旁邊。放置之前你可能要先移動(dòng)這個(gè)終 端給這個(gè)激勵(lì)源騰出一些連線的空間。
現(xiàn)在以最常用的方法編輯激勵(lì)源(點(diǎn)擊右鍵,選擇“編輯屬性”菜單),在數(shù)字激勵(lì)源類(lèi)型中選擇單脈沖,改變脈 沖極性為負(fù),使用脈沖信號(hào)代替按鍵脈沖。由于我們圖表仿真的時(shí)間是從 1s 到 2s,因此設(shè)置開(kāi)始時(shí)間 1.25s, 脈沖寬度 50ms。
在 1.25s 之前沒(méi)有任何的數(shù)據(jù)傳輸,這時(shí)因?yàn)槲覀兊哪M按鍵的脈沖是在 1.25s 時(shí)產(chǎn)生的。另外,現(xiàn)在在圖表 里面我們看不到其它的信息。右鍵點(diǎn)擊圖表,從彈出的菜單中選擇“最大化窗口”,這將在一個(gè)新的選項(xiàng)頁(yè)中 放大圖表。
當(dāng)圖表選項(xiàng)頁(yè)出現(xiàn)在最前面時(shí),菜單和工具欄會(huì)改變,通過(guò)這些菜單和工具可以對(duì)圖表進(jìn)行一些操作。請(qǐng)?zhí)貏e 注意應(yīng)用程序頂部出現(xiàn)的圖表工具欄。
熟悉 I2C 協(xié)議的人可以將圖表顯示的原始數(shù)據(jù)與之前在協(xié)議分析儀中看到的序列進(jìn)行對(duì)比驗(yàn)證。 最后,你可以按下面介紹的方法進(jìn)行圖表測(cè)量:
一般的放置和編輯技巧在這個(gè)教程里面都只是作簡(jiǎn)單的介紹,而在 ISIS 教程文檔中有更多細(xì)節(jié)。 關(guān)于圖表的更多信息提供在本文檔的后面,而關(guān)于激勵(lì)源、探針以及基于圖表仿真的詳細(xì)說(shuō)明只能在 Proteus
我們以 LCD 顯示屏為例來(lái)說(shuō)明怎樣使用診斷信息。 切換到原理圖頁(yè)面,從“調(diào)試”菜單下打開(kāi)“配置診斷信息”子菜單。
現(xiàn)在展開(kāi) PIC16LF1937(U1)條目,向下滾動(dòng)到“LCD 模塊”這個(gè)子條目,再次將診斷信息輸出等級(jí)設(shè)置為“所 有信息”。
如果你暫停仿真,我們可以看到[PIC16 LCD]的調(diào)試信息里包含了 PC 值,你可以點(diǎn)擊這個(gè)值來(lái)定位到源代碼中 的某一行,這一行就是引起 PIC16 輸出這個(gè)調(diào)試信息的指令。
只有當(dāng)仿真被暫停以后,才能定位到源代碼中。 最后,停止仿真并將診斷信息輸出等級(jí)設(shè)置為“僅警告”。
在你的固件程序出現(xiàn) bug 時(shí),使用診斷信息來(lái)幫助你調(diào)試特別有用。但它會(huì)影響仿真的性能和速度(可以試試 對(duì) PIC MSSP 外設(shè)和溫度傳感器 MCP9800 輸出診斷信息),因此只在需要時(shí)啟用它。如果你知道事件出現(xiàn)的 大概時(shí)間段,你也可以選擇在一個(gè)限制的時(shí)間段內(nèi)輸出診斷信息。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |