예제 #1
0
/**@fn int8_t buf_putbyte(CircArr_InitTypeDef* arr, uint8_t c)
 * @brief buf_putbyte accepts a single byte c and puts it in the circular array.
 * @param arr a pointer to a circular array object
 * @param c an unsigned byte to be added to the array
 * @return
 */
uint8_t buf_putbyte(CircArr_InitTypeDef* arr, uint8_t c)
{
if ( buf_full(arr) ) {
	return (0); } //or just increment n_r and n_w?

arr->buf[arr->n_w++ % arr->size] = c;
return (1);
}
예제 #2
0
bool buf_write(buf_t* buf, void* data)
{
    bool success = false;
    if (!buf_full(buf))
    {
        buf->buffer[ buf->writes % buf->size ] = data;
        buf->writes++;
        success = true;
    }
    return success;
}