2012-11-20 4 views
0

UART 화면에 문자를 입력 할 때 트리거 할 UART 인터럽트를 설정하려고합니다. 문제는 내가 설정 한 방식으로 전송 및 수신 할 때 인터럽트가 트리거되는 것처럼 보입니다. 나는 데이터 시트를 읽었으며 실제로 어떻게 할 수 있는지 말하지 않는다. 그냥 직렬 포트에 대한 인터럽트를 사용할 수 있다고 말한다. 이 내가 누구 가능성이 수행 할 수있는 방법 어떤 생각을 가지고 있습니까 문자 수신시 트리거 할 UART 인터럽트 설정

S0CON = 0x50;  
PCON |= 0x80;  /* Double Baud rate */ 
ADCON0 |= 0x80;  /* Use baudrate generator */ 
S0RELL = 0xCC;  /* Baudrate = 9614 Baud @ 16Mhz */ 
S0RELH = 0x03; 
TI0  = 1;    /* Ready to transmit */ 
ES0 =1; 

UART를

을 설정하는 방법이다? 내가 카일 컴파일러를 사용하고 있고 인피니언 C509 Datasheet이 ** 링크

를 고정 당신이 명확하게 원하는 것을 할 수 있습니다 것처럼 보이지 않는,

+0

데이터 시트 링크가 끊어졌습니다. –

+0

데이터 시트에 대한 링크가 고정되어 있습니다 – user1175889

+0

http://www.keil.com/download/docs/71.asp의 zip에도 set_interrupt() 함수가 포함되어 있지 않습니까? –

답변

1

불행하게도 주셔서 감사합니다. 사용자 매뉴얼을 보시면 데이터 시트가 일반적으로 이런 유형의 문제를 해결하기에 충분하지 않습니다. 그림 7.4를보십시오. 채널 0, TI0 및 RI0에 대한 하드웨어에 의해 설정된 송신 및 수신 인터럽트 플래그는 모두 기본 직렬 통신 인터럽트를 트리거하며 둘 중 하나를 사용하지 않도록 설정되지는 않습니다.

이 다른 옵션이있을 수 있습니다,하지만 난 다음 중 하나라고 생각 하는데요 : 당신이 그것을 작동 가지고

  • 인터럽트를 사용합니다 (UART에 대한 인터럽트를 사용하는 대)

    • 폴링하지만, 직렬 통신 인터럽트에서 RI0이 설정되어 있는지 확인하고 그렇지 않은 경우 즉시 종료하십시오. (이 문제와 관련하여 타이밍 문제가 없는지 확인하고 수신 플래그를 지워 바이트를 버릴 가능성이 없는지 확인하십시오.)

    링크 C509-L 사용자 설명서에 대한 링크 얼마나 오래 유지 될지 확실하지 않음) : Infineon product site