#include "DBGU.h" #include "AIC.h"
void DBGU_Init_INT(void *vp_Handler) { DBGU_CR = ((1<<RSTTX) | (1<<RSTRX)); // RSTRX: Reset Receiver, // RSTTX: Reset Transmitter DBGU_BRGR = DBGU_CD; // Baud Rate Generator Reg 에 CD 값 저장
DBGU_MR = (0<<CHMODE) | (0<<PAR); // MODE 설정, parity type(짝수), normal mode PIO_PDR = ((1<<PA9)|(1<<PA10)); // PA9, PA10 리셋,Disable Reg PIO_ASR = ((1<< DRXD)|(1<<DTXD)); // Debug Unit 으로 송수신을 설정
// 2. 시작 : DBGU 인터럽트 비활성화 ------------- // DBGU 인터럽트 비활성화(DBGU_IDR 설정) // 인터럽트 상태 정보 초기화(DBGU_SR 읽기) DBGU_IDR = (1<<RXRDY) | (1<<TXRDY) | (1<<ENDRX) | (1<<ENDTX) | (1<<OVRE) | (1<<FRAME) | (1<<PARE) | (1<<TXEMPTY) | (1<<TXBUFE) | (1<<RXBUFF) | (1<<COMMTX) | (1<<COMMRX); DBGU_SR; // 읽어서 상태를 다 0 으로 만듬.
// 인터럽트 비활성화(AIC_IDCR, SYSC) P33 , SYSC 주변장치 번호 1번 AIC_IDCR = 1<< SYSC; // Setting SYSC and ADC bits in the clock set/clear registers of the PMC has no effect. The System Controller // is continuously clocked.
// SYSC 인터럽트 핸들러 등록(AIC_SVR[SYSC], Timer_Handler) AIC_SVR[SYSC] = (volatile unsigned int )vp_Handler; // SYSC 인터럽트 모드 설정(AIC_SMR[SYSC], AIC_SRCTYPE_INT_HIGH_LEVEL, PRIOR_LOWEST) AIC_SMR[SYSC] = ((0<<PRIOR) | (3<<SRCTYPE));
// SYSC 인터럽트 클리어(AIC_ICCR, SYSC) AIC_ICCR = 1<<SYSC; // DBGU 송신 인터럽트 활성화(DBGU_IER, RXRDY) DBGU_IER = 1<<RXRDY; /
// DBGU 인터럽트 활성화(AIC_IECR, SYSC) AIC_IECR = 1<<SYSC; // DBGU 송수신 활성화 DBGU_CR = ((1<<RXEN) | (1<<TXEN));
return; }
|