0
AVR로 프로그래밍 중이며 핀을 출력으로 설정하려고합니다. 다음과 같이 Register 및 Pin 번호를 유지하는 구조체를 만들었습니다.합격이 함수로 정의됩니다.
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
죄송합니다, 나는 바보입니다. 질문 코드를 업데이트하고 실제 코드를 업데이트 한 것으로 가정하고 ... haha. 감사합니다. – Nick