我已經爲8位PIC單片機編寫了一個hello-world程序,並且希望在MPLAB X IDE仿真器上運行它。MPLAB IDE中的仿真器Hello World:使用引腳/寄存器操作將引腳激勵到引腳
我想在其引腳上創建一個激勵,並將結果顯示在與輸入引腳相對應的微控制器寄存器中(在寄存器上設置了一個監視)。
到目前爲止我所取得的成就:程序似乎在模擬器上運行良好,我可以創建一個「異步」激勵,即激發激勵的變化(例如在輸入引腳上應用邏輯0)當我點擊「火」按鈕。這改變了PORTC
寄存器的內容。然而,我無法使「同步」激勵器工作(例如,自動切換施加到輸入管腳的激勵邏輯值)。 PORTC
不會更改。 (然而模擬器輸出表明刺激正在被應用)。
有一些Microchip爲MPLAB 8.x IDE模擬器編寫的例子,我嘗試將其應用於MPLAB X(v2.0),但無法工作。要建立什麼我做錯了,(或者,如果我遇到一個bug),也許有人可以通過以下方式之一幫助:
- 給工作你好世界的一個例子
- 現貨在這個過程中我已經按照(請參閱下面的我的步驟)
- 按照我的步驟,看看問題是否可以複製
這任何錯誤是我曾嘗試:
總結的步驟如下:
- 創建項目,並設置目標設備是「PIC16F77」
- 添加源文件
main.c
- 將模擬器作爲硬件工具,並XC8與C編譯器
- 在
PORTC
特殊功能寄存器上添加可變表 - 配置異步刺激
- 配置同步刺激
- 構建項目
- 調試模式運行
- 單步執行程序,並尋找
PORTC
寄存器的變化。#include <htc.h> __CONFIG( FOSC_HS & WDTE_OFF & PWRTE_OFF & BOREN_OFF ); void main(void) { // set tristate port directions: 1=input, 0=output TRISC = 0b11111111; while (1); }
我在
PORTC
SFR註冊變量觀察:
與源文件main.c
,並選擇「PIC16F77」作爲目標設備中創建MPLAB X IDE一個新項目:
配置異步刺激在窗口/標籤Stimulus > Asynchronous
:
配置在窗口/標籤Stimulus > Pin/Register Actions
同步刺激後來總算:
我生成項目,以調試模式運行,暫停並單步執行程序。
當我點擊異步激勵的「激活」按鈕,然後點擊Step-Over按鈕,PORTC寄存器中的值就會按預期改變。
但是,當運行程序時,同步刺激看起來似乎沒有任何效果。看來刺激重複使用,但對PORTC
寄存器中的值沒有影響。可以看出在窗口/標籤:Output > Stimulus
正在應用的刺激:
我不明白爲什麼異步激勵工作正常,但同步刺激似乎被應用,但不產生所需的效果。