|
@@ -220,9 +220,30 @@ void UART1SEND(char data) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
void UART1SendDma(unsigned char *txData, unsigned int len) {
|
|
void UART1SendDma(unsigned char *txData, unsigned int len) {
|
|
|
- for (unsigned int i = 0; i < len; i++) {
|
|
|
|
|
- g_ucTX_DMA[i] = txData[i];
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
|
|
+ for (unsigned int n = 0; n <len; n++) {
|
|
|
|
|
+ g_ucTX_DMA[n] = g_ucU1RX_Data[n];
|
|
|
|
|
+ }
|
|
|
|
|
+ if (g_CmdFrom_UartNum == 0) {
|
|
|
|
|
+ while (DMACH5bits.CHEN);
|
|
|
|
|
+ DMASRC5 = (uint16_t)g_ucTX_DMA;
|
|
|
|
|
+ DMACNT5 = len;
|
|
|
|
|
+ DMACH5bits.CHEN = 1; // Enable DMA Channel
|
|
|
|
|
+ DMACH5bits.CHREQ = 1; // Start DMA Operation
|
|
|
|
|
+ } else {
|
|
|
|
|
+ while (DMACH4bits.CHEN);
|
|
|
|
|
+ DMASRC4 = (uint16_t)g_ucTX_DMA;
|
|
|
|
|
+ DMACNT4 = len;
|
|
|
|
|
+ DMACH4bits.CHEN = 1; // Enable DMA Channel
|
|
|
|
|
+ DMACH4bits.CHREQ = 1; // Start DMA Operation
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void UART1SendCopyDma() {
|
|
|
|
|
+ unsigned int len = g_ucU1RX_Data[3];
|
|
|
|
|
+ for (unsigned int n = 0; n <len; n++) {
|
|
|
|
|
+ g_ucTX_DMA[n] = g_ucU1RX_Data[n];
|
|
|
|
|
+ }
|
|
|
if (g_CmdFrom_UartNum == 1) {
|
|
if (g_CmdFrom_UartNum == 1) {
|
|
|
while (DMACH5bits.CHEN);
|
|
while (DMACH5bits.CHEN);
|
|
|
DMASRC5 = (uint16_t)g_ucTX_DMA;
|
|
DMASRC5 = (uint16_t)g_ucTX_DMA;
|
|
@@ -238,6 +259,7 @@ void UART1SendDma(unsigned char *txData, unsigned int len) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
void Uart1_Receive(char num) {
|
|
void Uart1_Receive(char num) {
|
|
|
|
|
|
|
|
U1TXREG = num;
|
|
U1TXREG = num;
|
|
@@ -641,7 +663,7 @@ int DecodeNew(void* pMessage, uint8_t *pdata, const uint8_t *pInBuffer, uint32_t
|
|
|
|
|
|
|
|
uint8_t checkesum = 0;
|
|
uint8_t checkesum = 0;
|
|
|
uint8_t recsum = 0;
|
|
uint8_t recsum = 0;
|
|
|
- if((header + i + messagelen) < maxlen){
|
|
|
|
|
|
|
+ if((header + i + messagelen-1) < maxlen){
|
|
|
checkesum = checkSum(pInBuffer + header + i , messagelen - 1);
|
|
checkesum = checkSum(pInBuffer + header + i , messagelen - 1);
|
|
|
|
|
|
|
|
}else{
|
|
}else{
|