[En-Nut-Discussion] AVR ADC sample fails
Harald Kipp
harald.kipp at egnite.de
Wed Jul 8 20:12:04 CEST 2009
Ole Reinhardt wrote:
>>> But I'd still vote for
>>>
>>> #define ADC_BUF_TAIL (ADC_BUF_SIZE+1)
>>> [...]
>>> buf[ADC_BUF_TAIL] = 0;
>>>
>>> instead of using
>>>
>>> buf[ADC_BUF_SIZE+1] = 0;
>> The disadvantage is, that something is hidden. What's the advantage then?
>
> The advantage is that you know what this array index is used for. On the
> other hand it's no good idea to save the head and tail pointer in the
> buffer at all. It better should be solved as seperate variables. But
> this design allows you to just pass the buffer array to a function
> instead of several variables. Yes, we should better put all this stuff
> in a struct.
I didn't understand really what's going on in this code, but now it
makes sense. I agree with both, that the special use of the 2 upper
elements requires the defines and that a structure would be easier to
understand.
Indeed, parameter passing consumes a lot of code space on the AVR.
Harald
More information about the En-Nut-Discussion
mailing list