0
我正在用AVR編程,我試圖創建一個函數來設置一個引腳作爲輸出。我做了一個結構來保存這樣的寄存器和引腳號:傳遞定義爲函數
typedef struct Pin{
uint8_t pinNo;
volatile uint8_t* pinReg;
};
然後我有這個功能來設置一個引腳的輸出。
void pin_output(struct Pin pin){
//DDRA |= _BV(DDA6);
*(pin.pinReg) |= _BV(pin.pinNo);
}
這樣調用:
struct Pin pin6;
pin6.pinNo = DDA6;
pin6.pinReg = DDRA;
pin_output(pin6);
也能正常工作,但LED的亮度很暗。如果我這樣設置輸出:
DDRA |= _BV(DDA6);
該引腳的亮度約爲功能的3-5倍。在導致亮度問題的功能中迷失什麼?
對不起,這是一些遺留的調試代碼。我更新了問題。按照您的說法,我分配了pin6.pinReg,但亮度仍然很暗。 – Nick
@尼克:沒有理由不工作。一旦你添加'&'它應該工作。 – AnT
對不起,我很笨。我更新了問題代碼,只是假設我更新了實際的代碼,並沒有......哈哈。謝謝現在很好。 – Nick