Giải thích code cho dsPIC
Trong đó module U2ART được khởi tạo như sau:
Code:
void InitUART(void)
{
U2MODE = 0x8000;
U2STA = 0x0000;
U2BRG = ((FCY/16)/BAUD) - 1; // set baud to 19200
IEC1bits.U2RXIE = 1; // enable RX interrupt
RXPtr = &InData[0]; // con trỏ chỉ đến kí tự đầu tiên trong bộ đệm nhận
Flags.CheckRX = 0; // Xóa cờ rx and tx
Flags.SendTX = 0;
U2STAbits.UTXEN = 1; // Initiate transmission
}
void _ISR _U2TXInterrupt(void)
{
IFS1bits.U2TXIF = 0; // xóa cờ ngắt
}
void _ISR _U2RXInterrupt(void)
{
IFS1bits.U2RXIF = 0; //xóa cờ ngắt
*RXPtr = U2RXREG;
if (*RXPtr == CR)
{Flags.CheckRX = 1;RXPtr = &InData[0];}
else *RXPtr++;
}
thay đổi nội dung bởi: namqn, 03-01-2009 lúc 01:12 AM.
|