V-USB의 PIN 할당 변경
2563 단어 ATmega328PAVRV-USB
인터럽트를 INT0에서 PCINT0으로 변경하고 Atmega 328의 PIN14(PB0), PIN15(PB1)로 변경할 때의 변경 부분을 기록한다.
고친 곳
usbconfig.h의 다음 주소 변경
usbconfig.h
/* ---------------------------- Hardware Config ---------------------------- */
#define USB_CFG_IOPORTNAME B
/* This is the port where the USB bus is connected. When you configure it to
* "B", the registers PORTB, PINB and DDRB will be used.
*/
#define USB_CFG_DMINUS_BIT 1
/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
* This may be any bit in the port.
*/
#define USB_CFG_DPLUS_BIT 0
/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
* This may be any bit in the port. Please note that D+ must also be connected
* to interrupt pin INT0!
*/
포트 및 풋 번호 할당을 변경합니다.usbconfig.h
/* ----------------------- Optional MCU Description ------------------------ */
/* The following configurations have working defaults in usbdrv.h. You
* usually don't need to set them explicitly. Only if you want to run
* the driver on a device which is not yet supported or with a compiler
* which is not fully supported (such as IAR C) or if you use a differnt
* interrupt than INT0, you may have to define some of these.
*/
#define USB_INTR_CFG PCICR
#define USB_INTR_CFG_SET (1 << PCIE0)
// #define USB_INTR_CFG_CLR 0
#define USB_INTR_ENABLE PCMSK0
#define USB_INTR_ENABLE_BIT PCINT0
#define USB_INTR_PENDING PCIFR
#define USB_INTR_PENDING_BIT PCIF0
#define USB_INTR_VECTOR PCINT0_vect
#endif /* __usbconfig_h_included__ */
인터럽트 관계의 정의도 PCINT0으로 재정의되지만 PCINT를 사용하기 때문에 우선순위 관계는 인터럽트를 사용할 수 없습니다.D+는 PB0, D-는 PB1로 변경되어 세로 길이가 가능합니다.
컴팩트하지 않은 설치 예
Reference
이 문제에 관하여(V-USB의 PIN 할당 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Shigosen/items/eb1bf58428e92dd9b865텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)