성엽이
KKIMSSI
성엽이
전체 방문자
오늘
어제
  • 분류 전체보기 (454)
    • :) (2)
    • C프로그래밍이론 (9)
    • C++프로그래밍 (64)
      • STL (1)
    • C# (2)
    • Visual studio 10.0 (9)
    • AT91SAM7S256 (21)
    • 논리회로 (14)
    • AVR2560 (11)
    • TCPIP (16)
    • NetWork (4)
      • Ubuntu Linux (2)
    • Assembly (21)
    • UNIX 프로그래밍 (6)
    • RFID 분석 (1)
    • Win32 API (7)
    • Cortex-M3 (4)
    • Unity (91)
    • Flutter (9)
    • OwnProject (11)
      • It's mine (5)
      • 마인드스톰 실습 (1)
      • 보고서 자료 (2)
      • RPi B+ (2)
    • ETC (25)
      • 상식 (3)
    • MFC (40)
    • PostgeSQL (18)
    • 영상제어 (6)
      • VFW_영상처리 (1)
    • Python (0)
    • Java (30)
      • SpringBoot (2)
      • Javascript (1)
      • JSP (13)
      • Spring (8)
    • Oracle (4)
      • SQL (3)
    • HTML (6)
      • Thymeleaf (1)
      • CSS (1)
      • Bootstrap (3)
    • IDE (1)
      • VS Code (1)
    • Android (2)
    • Privacy Policy (0)
    • MYSQL (2)
      • MariaDB (2)
    • AWS (5)
    • 개인공부 (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
  • 관리자
  • 글쓰기

공지사항

인기 글

태그

  • ARM Reverse Engineering
  • Boot Code 분석
  • MFC
  • 문자열 나누기
  • WINAPI

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
성엽이

KKIMSSI

AT91SAM7S256

2013.05.24_while문 반복중에도 DBGU_인터럽트걸기!

2013. 5. 24. 14:35

▶while문 반복중에도 DBGU_인터럽트걸기!

#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;
}


저작자표시 (새창열림)

'AT91SAM7S256' 카테고리의 다른 글

2013.05.27_ARM_사용자정의한글띄우기_  (0) 2013.05.27
2013.05.24_초음파센서_  (0) 2013.05.24
2013.05.15_Timer/Count_인터럽트(수정중)  (0) 2013.05.15
2013.05.09_DBGU(응용)_Recv_Char  (0) 2013.05.09
2013.05.08_DBGU_문자보내기!  (0) 2013.05.08
    'AT91SAM7S256' 카테고리의 다른 글
    • 2013.05.27_ARM_사용자정의한글띄우기_
    • 2013.05.24_초음파센서_
    • 2013.05.15_Timer/Count_인터럽트(수정중)
    • 2013.05.09_DBGU(응용)_Recv_Char
    성엽이
    성엽이

    티스토리툴바