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 | } |