00001
00023 #include "xmodem.h"
00024
00025 extern struct global
00026 {
00027 volatile unsigned char *recv_ptr;
00028 volatile unsigned char buffer_status;
00029 volatile unsigned char recv_error;
00030 volatile unsigned char t1_timed_out;
00031 } gl;
00032
00033
00034 void respond(unsigned char packet)
00035 {
00036
00037
00038 gl.buffer_status = empty;
00039 gl.recv_error = FALSE;
00040
00041 if ((packet == good) || (packet == dup) || (packet == end))
00042 {
00043 while (!(UCSR0A & 0x20));
00044 UDR0 = ACK;
00045 }
00046 else
00047 {
00048 while (!(UCSR0A & 0x20));
00049 purge();
00050 UDR0 = NAK;
00051 }
00052 }