#define PIO_ASR (*(volatile unsigned int *) 0xFFFFF470)//주변장치 A로 선택
#define PIO_BSR (*(volatile unsigned int *) 0xFFFFF474)//주변장치 B로 선택
#define PIO_PDR (*(volatile unsigned int *) 0xFFFFF404)//병렬 입출력 포트로 사용 금지
#define PIO_SODR (*(volatile unsigned int *) 0xFFFFF430) //출력
#define PIO_CODR (*(volatile unsigned int *) 0xFFFFF434) //출력 하지 않음
#define PIO_OER (*(volatile unsigned int *) 0xFFFFF410) //출력버퍼 사용 설정
#define PIO_PER (*(volatile unsigned int *) 0xFFFFF400) //병렬 입출력 제어 레지스터 병렬 입출력 포트로 사용한다.
#define PIO_PUDR (*(volatile unsigned int *) 0xFFFFF460) //풀업저항 사용하지 않음
#define PIO_IFER (*(volatile unsigned int *) 0xFFFFF420) //글리치 필터 사용허가 레지스터
#define PIO_IER (*(volatile unsigned int *) 0xFFFFF440) //인터럽트 인에이플 레지스터
#define PIO_ISR (*(volatile unsigned int *) 0xFFFFF44C) //인터럽트 스테이터스 레지스터
#define PIO_ODR (*(volatile unsigned int *) 0xFFFFF414) //인터럽트 금지 레지스터
//----------------------------------------------------------------------------------
//---------- 전력 제어 설정
#define PMC_PCER (*(volatile unsigned int *) 0xFFFFFC10)
#define MASTERCLOCK 48000000
//----------------------------------------------------------------------------------
//--------- AIC (인터럽트 ) 설정
#define AIC_IDCR (*(volatile unsigned int *) 0xFFFFF124) // 인터럽트 금지 레지스터
#define AIC_SVR ((volatile unsigned int *) 0xFFFFF080) // 인터럽트 서비스 루틴 등록
#define AIC_SMR ((volatile unsigned int *) 0xFFFFF000) // 인터럽트 설정
#define AIC_ICCR (*(volatile unsigned int *) 0xFFFFF128) //에지 검출기 클리어
#define AIC_IECR (*(volatile unsigned int *) 0xFFFFF120) // 인터럽트 허용 레지스터
//----------------------------------------------------------------------------------
//--------- 디버그유닛 레지스터
#define DBGU_BRGR (*(volatile unsigned int *) 0xFFFFF220) //보레이트 설정 레지스터
#define DBGU_MR (*(volatile unsigned int *) 0xFFFFF204) //모드 레지스터 (모드 설정, 패리티 설정)
#define DBGU_CR (*(volatile unsigned int *) 0xFFFFF200) //제어 레지스터 (송수신 설정)
#define DBGU_SR (*(volatile unsigned int *) 0xFFFFF214) //상태 레지스터
#define DBGU_THR (*(volatile unsigned int *) 0xFFFFF21C) // 송신 홀딩 레지스터
#define DBGU_RHR (*(volatile unsigned int *) 0xFFFFF218) // 수신 홀딩 레지스터
// 디버그 유닛 인터럽트 설정
#define DBGU_IER (*(volatile unsigned int *) 0xFFFFF208) // 디버그 유닛 인에이블
//----------------------------------------------------------------------------------
// ADC레지스터 설정
#define ADC_CR (*(volatile unsigned int *) 0xFFFD8000) // ADC제어 레지스터 ADC변환 시작/ADC 내부 하드웨어 리셋처러 리셋 설정
#define ADC_MR (*(volatile unsigned int *) 0xFFFD8004) // ADC 모드 제어 레지스터
#define ADC_CHER (*(volatile unsigned int *) 0xFFFD8010) // ADC 채널 허용 레지스터
#define ADC_SR (*(volatile unsigned int *) 0xFFFD801C) //ADC 상태 레지스터
#define ADC_CDR ((volatile unsigned int *) 0xFFFD8030) //ADC 채널 데이터 레지스터
//----------------------------------------------------------------------------------
int main(void)
{
while(1)
{
unsigned char a;
unsigned char b;
PMC_PCER = (1 << 0) | (1 << 1); //PID0,1 always default
DBGU_BRGR = 26; //보레이트 설정 115200 , 데이터 통신속도 조절
DBGU_CR = 1<<6 | 1<<4 | 1<<8; // Transmitter Enable , Receiver Enable.
DBGU_MR = 1<<11; //페리티 없음. 정상모드 사용.
PIO_ASR = (1 << 9) | (1 << 10); //A를 주변장치 A로 선택
PIO_PDR = (1 << 9) | (1 << 10); //병렬 I/O로 사용하는 것을 금지하고 주변장치로 사용하는 것을 허용한다.
//DBGU_RHR = DBGU_THR ; //ARM에서 터미널 //터미널에서 ARM
if(DBGU_SR&(1<<1))
{
DBGU_THR = DBGU_RHR;
}
}
}
'About 프로그래밍!!! > ARM' 카테고리의 다른 글
[ARM]링크드리스트 하기전에.. (0) | 2010.07.14 |
---|---|
[ARM]ADC(아날로그 to 디지털) (0) | 2010.07.13 |
[ARM] ADC (0) | 2010.07.13 |
[ARM]캐릭터 LCD (0) | 2010.07.09 |
[ARM] 캐릭터 LCD에 글자쓰기 (0) | 2010.07.09 |