
AVRGCC(Mega128)Как да организирам оптимална опашка от масиви
AVR GCC (ATMega128) Как да организирам оптимална опашка от масиви?
Правя измервания на нещо, примерно, 100 пъти в секунда получавам по 4 байта.
Целите измервания са по разни прекъсвания (таймери и АЦП).
Резултати трябва да ги записвам на SD карта, което е сравнително бавно и го правя в главна програма.
Сещам се за два начина (благодарности за други предложения):
1. един кръгов буфер, например с 100х4 байта, пълнещ се при измерване, а всеки път, когато главната програма се натутка - записва новополучената част от буфера на SD.
2. опашка, която да се пълни по прекъсване и, след запис на SD, да се празни от главната програма.
Вторият начин е по-професионален

щото не държи 400 байта винаги заети, а и организационните конфликти са по-малко.
Обаче (2) изисква непрекъснато заделяне и освобождаване на памет и не зная какво ще стане след фрагментирането на паметта.
И не съм уверен, че в (2) ще успея да се оправя с указателите

, поне не без ваша помощ.
Така, че очаквам преложения, идеи и коментари

. Вероятно има много подобни примери и описания на подобни неща, но не ги намирам.