Subversion Repositories FlightCtrl

Rev

Rev 2055 | Rev 2058 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2055 Rev 2057
Line 246... Line 246...
246
        // the rxd buffer is unlocked
246
        // the rxd buffer is unlocked
247
        if ((ptr_rxd_buffer == 0) && (c == '#')) { // if rxd buffer is empty and syncronisation character is received
247
        if ((ptr_rxd_buffer == 0) && (c == '#')) { // if rxd buffer is empty and syncronisation character is received
248
                rxd_buffer[ptr_rxd_buffer++] = c; // copy 1st byte to buffer
248
                rxd_buffer[ptr_rxd_buffer++] = c; // copy 1st byte to buffer
249
                checksum = c; // init checksum
249
                checksum = c; // init checksum
250
        }
250
        }
251
#if 0
-
 
252
        else if (ptr_rxd_buffer == 1) { // handle address
-
 
253
                rxd_buffer[ptr_rxd_buffer++] = c; // copy byte to rxd buffer
-
 
254
                checksum += c; // update checksum
-
 
255
        }
-
 
256
#endif
-
 
257
        else if (ptr_rxd_buffer < RXD_BUFFER_LEN) { // collect incomming bytes
251
        else if (ptr_rxd_buffer < RXD_BUFFER_LEN) { // collect incomming bytes
258
                if (c != '\r') { // no termination character
252
                if (c != '\r') { // no termination character
259
                        rxd_buffer[ptr_rxd_buffer++] = c; // copy byte to rxd buffer
253
                        rxd_buffer[ptr_rxd_buffer++] = c; // copy byte to rxd buffer
260
                        checksum += c; // update checksum
254
                        checksum += c; // update checksum
261
                } else { // termination character was received
255
                } else { // termination character was received
Line 294... Line 288...
294
        uint16_t tmpchecksum = 0, i;
288
        uint16_t tmpchecksum = 0, i;
295
        for (i = 0; i < datalen; i++) {
289
        for (i = 0; i < datalen; i++) {
296
                tmpchecksum += txd_buffer[i];
290
                tmpchecksum += txd_buffer[i];
297
        }
291
        }
298
        tmpchecksum %= 4096;
292
        tmpchecksum %= 4096;
299
        txd_buffer[i++] = '=' + tmpchecksum / 64;
293
        txd_buffer[i++] = '=' + tmpchecksum >> 6;
300
        txd_buffer[i++] = '=' + tmpchecksum % 64;
294
        txd_buffer[i++] = '=' + tmpchecksum & 0x3F;
301
        txd_buffer[i++] = '\r';
295
        txd_buffer[i++] = '\r';
302
        txd_complete = FALSE;
296
        txd_complete = FALSE;
303
        UDR0 = txd_buffer[0]; // initiates the transmittion (continued in the TXD ISR)
297
        UDR0 = txd_buffer[0]; // initiates the transmittion (continued in the TXD ISR)
304
}
298
}