2011-05-11 91 views
2

我正在使用帶16f690芯片的PICkit2低引腳數演示板。我已經能夠編寫簡單的代碼來打開和關閉LED,但是一旦嘗試利用按鈕來改變LED的狀態,就無法做到這一點。我的代碼如下,連同設備原理圖的鏈接。帶有按鈕的PICkit2閃爍指示燈

#include <htc.h> 

__CONFIG(MCLRE_OFF & BOREN_OFF & PWRTE_OFF & IESO_OFF & CP_OFF & FCMEN_ON); 

void main() 
{ 
    //initialization 
    TRISAbits.RA3 = 1;  //make button (RA3) input 
    TRISCbits.RC0 = 0;  //make LED (RC0) output 

    for(;;)     // loop forever 
    { 
     //set RC0 if RA3 is low (button pressed), else clear RC0 
     if(PORTAbits.RA3) 
     { 
      RC0 = 1; 
     } 
     else 
     { 
      RC0 = 0; 
     } 
    } 
} 

Demo Board User’s Guide

+0

你的開發板上連接了JP5嗎? – 2011-05-11 14:19:14

回答

4

RA3也是/ MCLR中,數據表的表3表示,該引腳上的上拉只與外部/ MCLR配置激活。如果沒有上拉,你將不會得到改變。引腳讀取持續高還是低?

我會避免使用RA3,至少在調試時,如果您必須在釋放代碼中使用它,則在調試時將引腳交換爲另一個引腳。

PORTA的另一個常見問題是它默認爲模擬輸入端口。 ANSEL位置1,需要清零才能用作數字輸入,但RA3未映射到模擬輸入。

1

我一直有同樣的問題,並發現以下內容。

在MPLAB IDE的編程器設置中,勾選了「從復位釋放時的三態狀態」。我還將包含的頭文件從「htc.h」更改爲「pic.h」,該按鈕現在可用。