【发布时间】:2013-10-03 21:05:33
【问题描述】:
我正在使用 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 倍。函数中丢失了什么导致亮度问题?
【问题讨论】: