View Single Post
Old 25-08-2006, 08:51 PM   #26
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Bạn thử chương trình sau nhé, tôi dùng C30 Student Edition, dịch với optimization level 1. Chương trình sau chờ nhận một ký tự qua UART1, sau đó gửi trả ký tự đã nhận cũng qua UART1.

Code:
void Init_UART1_Module(void);

unsigned short temp;

int main(void) {
	Init_UART1_Module();
	while (1);
}

void Init_UART1_Module(void) {
	U1BRG = (((8000000/9600)/16)-1);	//9600 bps @ Fcy = 8 MHz
	U1MODE = 0x8000;	//Main I/O, 8-bit, no parity, 1 stop bit
//	U1MODE = 0x8400;	//Alt I/O, 8-bit, no parity, 1 stop bit
	U1STA = 0x0400;		//Interrupt when a character is received
//	U1STA = 0x04C0;		//Interrupt when rec. buffer is full
	_U1RXIF = 0;		//Clear the interrupt flag
	_U1RXIE = 1;		//Enable UART1 Receive Interrupt
	IPC2bits.U1RXIP = 4;	//UART1 Receiver Interrupt at priority 4
}

void _ISR _U1RXInterrupt(void) {
	temp = U1RXREG;
	U1TXREG = temp;
	_U1RXIF = 0;		//Clear the interrupt flag before returning
}
Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn