8 static unsigned char r_write;
9 static unsigned char r_read;
10 static unsigned char r_num;
23 unsigned char ring_read_get(void)
27 void ring_read_set(unsigned char i)
31 void ring_read_plus(void)
34 if (r_read >= r_num) r_read = 0;
37 unsigned char ring_write_get(void)
41 void ring_write_plus(void)
44 if (r_write >= r_num) r_write = 0;
47 unsigned char ring_num_get()
51 i = (signed char)r_write - (signed char)r_read;
52 if (i < 0) i += r_num;
53 return (unsigned char)i;
61 unsigned char ring_is_full(void)
63 if (ring_num_get() >= r_num - 1) return 1;