stm32 измерение переменного напряжение.
- Сообщения: 1339
- Зарегистрирован: Вт ноя 19, 2019 06:10:18
Во-первых, минимальное время для УВХ не канает, точность потеряешь. Во-вторых, на расчёты нужно время, а МК занят массой других дел. Ещё не забывай, что пересылки из АЦП в память занимают полосу пропускания шин, так что задирать частоту выборки не следует, а следует выбрать достаточной для обеспечения требуемых характеристик.
- Реклама
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
tonyk писал(а):минимальное время для УВХ не канает
наверное надо было максимум написатьDimon456 писал(а):ADC_SampleTime_239_5Cycles
Мне интересно, сколько дма каналов можно задействовать одновременно?tonyk писал(а):Ещё не забывай, что пересылки из АЦП в память занимают полосу пропускания шин,
и опять все упирается в такты время и т.п.tonyk писал(а):Во-вторых, на расчёты нужно время,
[uquote="Dimon456",url="/forum/viewtopic.php?p=4198071#p4198071"]сколько дма каналов можно задействовать одновременно?[/uquote]
Задействованные каналы одновременно вообще не работают. Естественно, что речь идет об МК, где ОЗУ имеет единственную шину.
Вы можете включить все каналы ДМА, но арбитр шины на основании текущего приоритета решит кому предоставить доступ к памяти в данный конкретный момент. С целью недопущения потери данных в контроллере ДМА создают буфер FIFO, который способен удержать некоторый объем поступающих данных для ожидания доступа. Таким образом, перегрузка каналов ДМА приведет к потере производительности МК.
Пример. Вы пытаетесь загрузить данные от внешнего параллельного конвейерного АЦП на скоростях близких к предельным для шины памяти. Это приведет к блокировке ядра МК и фактическому останову исполнения кода. Точнее, чтение из флеша кода будет продолжено, арифметика ядра (регистровая арифметика) так же будет исполняться, но чтение-запись ОЗУ будут блокированы.
Задействованные каналы одновременно вообще не работают. Естественно, что речь идет об МК, где ОЗУ имеет единственную шину.
Вы можете включить все каналы ДМА, но арбитр шины на основании текущего приоритета решит кому предоставить доступ к памяти в данный конкретный момент. С целью недопущения потери данных в контроллере ДМА создают буфер FIFO, который способен удержать некоторый объем поступающих данных для ожидания доступа. Таким образом, перегрузка каналов ДМА приведет к потере производительности МК.
Пример. Вы пытаетесь загрузить данные от внешнего параллельного конвейерного АЦП на скоростях близких к предельным для шины памяти. Это приведет к блокировке ядра МК и фактическому останову исполнения кода. Точнее, чтение из флеша кода будет продолжено, арифметика ядра (регистровая арифметика) так же будет исполняться, но чтение-запись ОЗУ будут блокированы.
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
Во как, не все упирается в дма.
И каковы же предельные значения для шины памяти? К примеру вот у этого stm32f030f4p6.КРАМ писал(а):на скоростях близких к предельным для шины памяти.
[uquote="Dimon456",url="/forum/viewtopic.php?p=4198098#p4198098"]И каковы же предельные значения для шины памяти?[/uquote]
Насколько я знаю, предельной скоростью для ДМА будет четверть от системной частоты. Но для STM32 (M0) конкретно я могу немного ошибаться.
В любом случае, использовать ДМА не предельных скоростях неконструктивно. Нужно менять МК на более скоростной.
Насколько я знаю, предельной скоростью для ДМА будет четверть от системной частоты. Но для STM32 (M0) конкретно я могу немного ошибаться.
В любом случае, использовать ДМА не предельных скоростях неконструктивно. Нужно менять МК на более скоростной.
- Реклама
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
Даже если и так. 48МГц/4=12МГц, это что-то около 0,083us,КРАМ писал(а):четверть от системной частоты
даже если и при ADC_SampleTime_1_5Cycles 1us, получается что еще предел не достигнут?
[uquote="Dimon456",url="/forum/viewtopic.php?p=4198113#p4198113"]предел не достигнут?[/uquote]
Нет, конечно. Внутренним SAR ADC перегрузить DMA невозможно. Но любая транзакция DMA при конфликте доступа ядро-DMA и приоритете DMA будет вставлять в исполнение кода "пузырьки". То есть задерживать исполнение.
Я не очень понял к чему вообще все это обсуждение. Какая цель ставится?
Нет, конечно. Внутренним SAR ADC перегрузить DMA невозможно. Но любая транзакция DMA при конфликте доступа ядро-DMA и приоритете DMA будет вставлять в исполнение кода "пузырьки". То есть задерживать исполнение.
Я не очень понял к чему вообще все это обсуждение. Какая цель ставится?
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
Думаю, цель, использование одновременно дма каналов.КРАМ писал(а):Какая цель ставится?
Речь идет про оверсемплинг, даже если и отбросить повышение разрядности АЦП, остается одно интервал времени между отсчетами, и он должен быть постоянен, в противном случае это приведет к накоплению ошибки и неверному результату или "прыганию показаний".
А у ТС на дма все весит, все что можно повесить, и uart и spi и i2c, и куча прерываний.
Так вот и возникает вопрос, как эти все дма увяжутся с постоянным интервалом времени между отсчетами?
Здесь еще не рассматривается тот вариант, что у ТС внешний АЦП.
[uquote="Dimon456",url="/forum/viewtopic.php?p=4198162#p4198162"]Речь идет про оверсемплинг, даже если и отбросить повышение разрядности АЦП, остается одно интервал времени между отсчетами, и он должен быть постоянен[/uquote]
Вы путаете Божий дар с яичницей.
Семплирование АЦП НИКАКОГО ОТНОШЕНИЯ к ДМА не имеет. Захват аналогового сигнала в УВХ (S&H) АЦП и транзакция данных ПОСЛЕ завершения преобразования - "две большие разницы". Учите матчасть.
Можно вообще не использовать ДМА, а просто выгружать данные в прерывании - это ровным счетом никак не скажется на стабильности отсчетов во времени. Лишь бы все это успевало произойти между двух событий готовности данных.
ЗЫ. В догон. Какое отношение оверсемплинг имеет к стабильности отсчетов? Вы понимаете о чем говорите или просто фантазируете?
Вы путаете Божий дар с яичницей.
Семплирование АЦП НИКАКОГО ОТНОШЕНИЯ к ДМА не имеет. Захват аналогового сигнала в УВХ (S&H) АЦП и транзакция данных ПОСЛЕ завершения преобразования - "две большие разницы". Учите матчасть.
Можно вообще не использовать ДМА, а просто выгружать данные в прерывании - это ровным счетом никак не скажется на стабильности отсчетов во времени. Лишь бы все это успевало произойти между двух событий готовности данных.
ЗЫ. В догон. Какое отношение оверсемплинг имеет к стабильности отсчетов? Вы понимаете о чем говорите или просто фантазируете?
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
Ну а тогда какого хрена мне тут тарочут про занимаемую полосу пропускания шины? Если эта штука способна все запросы обработать +кучу прерываний и положить это все куда нужно, тогда ни какой проблемы не вижу.КРАМ писал(а):Вы путаете Божий дар с яичницей.
Нооооо. Две темы перетрясли и в разделе stm и в разделе avr. Пока что, из вас, ни кто не предложил другого варианта измерения.КРАМ писал(а):ЗЫ. В догон.
- Сообщения: 440
- Зарегистрирован: Вс дек 29, 2019 08:05:21
Я настраивал ацп по запуску от таймера. И в ДМА он у меня работает.Но это не решение проблепмы.Есть аппаратная фильтрация.А вот о программной фильтрации кто нибудь может сказать?
Добавлено after 2 minutes:
КРАМ я с ним в какой то мере согласен.
Добавлено after 2 minutes:
КРАМ я с ним в какой то мере согласен.
- Сообщения: 1405
- Зарегистрирован: Чт фев 19, 2015 12:41:04
[uquote="КРАМ",url="/forum/viewtopic.php?p=4198087#p4198087"][uquote="Dimon456",url="/forum/viewtopic.php?p=4198071#p4198071"]сколько дма каналов можно задействовать одновременно?[/uquote]
Задействованные каналы одновременно вообще не работают. Естественно, что речь идет об МК, где ОЗУ имеет единственную шину.
Вы можете включить все каналы ДМА, но арбитр шины на основании текущего приоритета решит кому предоставить доступ к памяти в данный конкретный момент. С целью недопущения потери данных в контроллере ДМА создают буфер FIFO, который способен удержать некоторый объем поступающих данных для ожидания доступа. Таким образом, перегрузка каналов ДМА приведет к потере производительности МК.[/uquote]
Где прочитать про буфер FIFO для ДМА в каком STM есть и его размер огласите плиз....
Задействованные каналы одновременно вообще не работают. Естественно, что речь идет об МК, где ОЗУ имеет единственную шину.
Вы можете включить все каналы ДМА, но арбитр шины на основании текущего приоритета решит кому предоставить доступ к памяти в данный конкретный момент. С целью недопущения потери данных в контроллере ДМА создают буфер FIFO, который способен удержать некоторый объем поступающих данных для ожидания доступа. Таким образом, перегрузка каналов ДМА приведет к потере производительности МК.[/uquote]
Где прочитать про буфер FIFO для ДМА в каком STM есть и его размер огласите плиз....
"Every profession is a conspiracy against the uninitiated" (B. Shaw)
"A textbook can be defined as a book unsuitable for reading" (B. Shaw)
Tautology is humor in "this" place (Vigo Carpathian)
"A textbook can be defined as a book unsuitable for reading" (B. Shaw)
Tautology is humor in "this" place (Vigo Carpathian)
[uquote="Dimon456",url="/forum/viewtopic.php?p=4198239#p4198239"]Ну а тогда какого хрена мне тут тарочут про занимаемую полосу пропускания шины? Если эта штука способна все запросы обработать +кучу прерываний и положить это все куда нужно, тогда ни какой проблемы не вижу.[/uquote]
Я не в курсе что и кто вам говорит. Однако кроме того, что вы поместили данные в ОЗУ, делать с этими данными вы что то планируете? Или вы полагаете, что они Святым духом превратятся в искомый результат?
Вы так и не озвучили КОНЕЧНУЮ ЦЕЛЬ.
[uquote="astrahard",url="/forum/viewtopic.php?p=4198294#p4198294"]Где прочитать про буфер FIFO для ДМА в каком STM есть и его размер огласите плиз....[/uquote]
Буфер FIFO расположен в самом контроллере DMA. Получить информацию о нем вы можете в референсном мануале на свой STM32 в разделе "Контроллер DMA".
Например для F407:

Однако, даже при отсутствии упоминания о таком буфере он там может быть.
Так, например, в dsPIC33CH нет информации о нем, однако я его там обнаружил по факту генерации флага overrun DMA при превышении скорости формирования реквестов DMA выше допустимой. После взведения оного флага легко увидеть сколько транзакций прошло и посчитать длину буфера.
[uquote="ivan dimir",url="/forum/viewtopic.php?p=4198252#p4198252"]А вот о программной фильтрации кто нибудь может сказать?[/uquote]
Вы хотите, что бы вам в формате одного сообщения объяснили как написать фильтр?
Это невозможно. Тем более, что вы ничего не сказали о требованиях к этому фильтру. Ну или о КОНЕЧНОЙ ЗАДАЧЕ.
Что за странная привычка задавать вопросы без четкого описания исходных данных задачи?
Есть фильтры КИХ (FIR), есть БИХ (IIR). Вам конкретно что требуется и для каких целей?
[uquote="Dimon456",url="/forum/viewtopic.php?p=4198239#p4198239"]Пока что, из вас, ни кто не предложил другого варианта измерения.[/uquote]
Измерения ЧЕГО?
Я не в курсе что и кто вам говорит. Однако кроме того, что вы поместили данные в ОЗУ, делать с этими данными вы что то планируете? Или вы полагаете, что они Святым духом превратятся в искомый результат?
Вы так и не озвучили КОНЕЧНУЮ ЦЕЛЬ.
[uquote="astrahard",url="/forum/viewtopic.php?p=4198294#p4198294"]Где прочитать про буфер FIFO для ДМА в каком STM есть и его размер огласите плиз....[/uquote]
Буфер FIFO расположен в самом контроллере DMA. Получить информацию о нем вы можете в референсном мануале на свой STM32 в разделе "Контроллер DMA".
Например для F407:
Однако, даже при отсутствии упоминания о таком буфере он там может быть.
Так, например, в dsPIC33CH нет информации о нем, однако я его там обнаружил по факту генерации флага overrun DMA при превышении скорости формирования реквестов DMA выше допустимой. После взведения оного флага легко увидеть сколько транзакций прошло и посчитать длину буфера.
[uquote="ivan dimir",url="/forum/viewtopic.php?p=4198252#p4198252"]А вот о программной фильтрации кто нибудь может сказать?[/uquote]
Вы хотите, что бы вам в формате одного сообщения объяснили как написать фильтр?
Это невозможно. Тем более, что вы ничего не сказали о требованиях к этому фильтру. Ну или о КОНЕЧНОЙ ЗАДАЧЕ.
Что за странная привычка задавать вопросы без четкого описания исходных данных задачи?
Есть фильтры КИХ (FIR), есть БИХ (IIR). Вам конкретно что требуется и для каких целей?
[uquote="Dimon456",url="/forum/viewtopic.php?p=4198239#p4198239"]Пока что, из вас, ни кто не предложил другого варианта измерения.[/uquote]
Измерения ЧЕГО?
- Сообщения: 1405
- Зарегистрирован: Чт фев 19, 2015 12:41:04
Интересно о FIFO я почитал для STM32F407 и тоже не нашел размер FIFO только Bits 2:0 FTH: FIFO threshold. получается 64 максимальная глубина FIFO. Например в стандарте IEEE 1284, LPT 32 глубина FIFO но иногда не хватает для драйвера мне показалось.
Получается что FIFO для USB и ETHERNET в своей выделенной памяти организуется и оно больше чем для APB?
"Однако, даже при отсутствии упоминания о таком буфере он там может быть.
Так, например, в dsPIC33CH нет информации о нем, однако я его там обнаружил по факту генерации флага overrun DMA при
превышении скорости формирования запросов DMA выше допустимой"
Это совсем интересно, но как флаг поймать? этот флаг генерирует системный вызов?
Получается что FIFO для USB и ETHERNET в своей выделенной памяти организуется и оно больше чем для APB?
"Однако, даже при отсутствии упоминания о таком буфере он там может быть.
Так, например, в dsPIC33CH нет информации о нем, однако я его там обнаружил по факту генерации флага overrun DMA при
превышении скорости формирования запросов DMA выше допустимой"
Это совсем интересно, но как флаг поймать? этот флаг генерирует системный вызов?
"Every profession is a conspiracy against the uninitiated" (B. Shaw)
"A textbook can be defined as a book unsuitable for reading" (B. Shaw)
Tautology is humor in "this" place (Vigo Carpathian)
"A textbook can be defined as a book unsuitable for reading" (B. Shaw)
Tautology is humor in "this" place (Vigo Carpathian)
Флаг поймать можно простым опросом. В этой платформе изначально сброшенный флаг overrun DMA приводит к остановке канала DMA при его поднятии. Поэтому просто ловим флаг и смотрим что в массиве ДМА.
- Сообщения: 1339
- Зарегистрирован: Вт ноя 19, 2019 06:10:18
Вы вообще понимаете устройство периферии в СТМ32? Вся периферия имеет свои буферы, а те регистры, что видны программисту, служат лишь для приёма-передачи результатов. У АЦП есть свой внутренний регистр, в котором идёт формирование результата преобразования, который выкладывается только после его готовности. Вот вам и буфер. Заметьте, что частота тактирования АЦП в разы меньше частоты шины, по которой из него пересылаются данные.
Буфер FIFO есть не во всех DMA. Более того, его использование включается отдельно и логика работы с данными становится немного другой и описана в RM на МК.
Тема называется "stm32 измерение переменного напряжение". Напиши алгоритм свое цифровой обработки и замерь длительность его работы. Получишь оценку того, есть ли шанс у твоего МК успевать обрабатывать поступающую информацию. Если маразм меня не обманывает, то 9 каналов у нас считались около 2-3мс на F745.
Буфер FIFO есть не во всех DMA. Более того, его использование включается отдельно и логика работы с данными становится немного другой и описана в RM на МК.
Тема называется "stm32 измерение переменного напряжение". Напиши алгоритм свое цифровой обработки и замерь длительность его работы. Получишь оценку того, есть ли шанс у твоего МК успевать обрабатывать поступающую информацию. Если маразм меня не обманывает, то 9 каналов у нас считались около 2-3мс на F745.
[uquote="tonyk",url="/forum/viewtopic.php?p=4198328#p4198328"]Вы вообще понимаете устройство периферии в СТМ32?[/uquote]
Это вопрос КОМУ?
Вы, с точностью до неразличимости, повторили то, о чем я тут чуть ранее написал. Следует лишь напомнить, что период частоты тактирования АЦП меньше времени преобразования примерно в 14 раз для 12-битного режима. А если учесть, что частота тактирования АЦП сильно ниже частоты ядра, то о существенной загрузке "пузырьками" конвейера ядра при накоплении массива АЦП через ДМА говорить не приходится.
Опять же при рассуждениях о потребной производительности при измерениях переменного напряжения нужно обозначить КОНКРЕТНУЮ задачу, а не абстрактно резонерствовать о том, "как это сделано у меня".
Есть минимум ТРИ варианта измерений.
1. Измерения с целью вывода на дисплей для считывания с него результата человеком.
2. Измерения с целью использования их в петле автоматического регулирования.
3. Измерения с целью бесконечного накопления данных (типа измерителя энергии или логгирования результатов с нормированным интервалом).
Для каждого из этих вариантов нужны РАЗНЫЕ вычислительные мощности. Особенно для п.п. 2 и 3 по сравнению с п.1
Простые дисплейные измерения не требуют никаких особенных производительностей от ядра. Достаточно просто выдержать требуемую частоту дискретизации и иметь необходимый объем ОЗУ для накопления массива.
Это вопрос КОМУ?
Вы, с точностью до неразличимости, повторили то, о чем я тут чуть ранее написал. Следует лишь напомнить, что период частоты тактирования АЦП меньше времени преобразования примерно в 14 раз для 12-битного режима. А если учесть, что частота тактирования АЦП сильно ниже частоты ядра, то о существенной загрузке "пузырьками" конвейера ядра при накоплении массива АЦП через ДМА говорить не приходится.
Опять же при рассуждениях о потребной производительности при измерениях переменного напряжения нужно обозначить КОНКРЕТНУЮ задачу, а не абстрактно резонерствовать о том, "как это сделано у меня".
Есть минимум ТРИ варианта измерений.
1. Измерения с целью вывода на дисплей для считывания с него результата человеком.
2. Измерения с целью использования их в петле автоматического регулирования.
3. Измерения с целью бесконечного накопления данных (типа измерителя энергии или логгирования результатов с нормированным интервалом).
Для каждого из этих вариантов нужны РАЗНЫЕ вычислительные мощности. Особенно для п.п. 2 и 3 по сравнению с п.1
Простые дисплейные измерения не требуют никаких особенных производительностей от ядра. Достаточно просто выдержать требуемую частоту дискретизации и иметь необходимый объем ОЗУ для накопления массива.
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
Допусти такКРАМ писал(а):Однако кроме того, что вы поместили данные в ОЗУ, делать с этими данными вы что то планируете?
Спойлер
Код: Выделить всё
volatile uint32_t avg_s;
#define ARRAYSIZE 1024UL
uint16_t ADC_values[ARRAYSIZE] __attribute__ ((aligned(4)));
#define d_count 512UL
void DMA1_Channel1_IRQHandler(void)
{
static uint32_t avg;
static uint32_t avg_t;
static uint32_t count=0;
uint16_t *dp;
uint32_t irq; uint16_t n;
DMA1->IFCR = irq = DMA1->ISR & D_IRQ_MASK;
dp = &ADC_values[(irq & DMA_ISR_TCIF1) ? ARRAYSIZE / 2 : 0];
n = ARRAYSIZE / 2;
avg = 0;
do {
avg += *dp;
dp += 1;
} while (--n != 0);
avg_t += avg;
if(count++ == d_count) {
avg_t /= ((ARRAYSIZE * d_count) / 2); // 1024*512/2=262144 или 2^18
avg_s = avg_t;
count=0; avg_t=0;
}
}Но интервал времени между отсчетами должен быть постоянен, в противном случае это приведет к накоплению ошибки и неверному результату или "прыганию показаний" и никакие КИХ (FIR) БИХ (IIR) фильтры не помогут.
А конечная цель, на дма все весит, все что можно повесить, и uart и spi и i2c, и куча прерываний.КРАМ писал(а):Вы так и не озвучили КОНЕЧНУЮ ЦЕЛЬ.
Так вот и возникает вопрос, как эти все дма увяжутся с постоянным интервалом времени между отсчетами и не возникнет ли ситуация, что ваш FIFO не будет успевать вовремя обрабатывать поставленную задачу.
[uquote="Dimon456",url="/forum/viewtopic.php?p=4198384#p4198384"]Я знаю что АЦП беферизированный, но АЦП не будет ждать пока ДМА заберет из буферизированного регистра данные[/uquote]
Бред не надо нести. Если в качестве реквеста для ДМА будет выбран сам АЦП, то данные уйдут в ОЗУ практически мгновенно после завершения преобразования. Изменение данных в буфере АЦП произойдет только по завершении следующего преобразования. Интервал семплирования (дискретизации) АЦП вы выбираете сами. Например от ШИМа. Никаких проблем с накоплением тут нет от слова совсем.
Добавлено after 2 minutes 5 seconds:
[uquote="Dimon456",url="/forum/viewtopic.php?p=4198384#p4198384"]А конечная цель, на дма все весит, все что можно повесить, и uart и spi и i2c, и куча прерываний.[/uquote]
У вас конечная цель состоит в куче прерываний? Вы вообще понимаете что тут бормочете?
Конечная цель - это НАЗНАЧЕНИЕ УСТРОЙСТВА, а не ваши ковыряния с интерфейсами и кодом.
И прекратите коверкать русский язык.
вИсит!!!!
Добавлено after 5 minutes 46 seconds:
[uquote="Dimon456",url="/forum/viewtopic.php?p=4198384#p4198384"]Но интервал времени между отсчетами должен быть постоянен, в противном случае это приведет к накоплению ошибки и неверному результату или "прыганию показаний" и никакие КИХ (FIR) БИХ (IIR) фильтры не помогут[/uquote]
Это вы сами придумали или рассказал кто? Какое еще нах накопление ошибки? Вы вообще понимаете о чем ведете разговор?
И с какого перепуга интервал будет изменяться, если запуск АЦП производится от стабильной частоты?
Бред не надо нести. Если в качестве реквеста для ДМА будет выбран сам АЦП, то данные уйдут в ОЗУ практически мгновенно после завершения преобразования. Изменение данных в буфере АЦП произойдет только по завершении следующего преобразования. Интервал семплирования (дискретизации) АЦП вы выбираете сами. Например от ШИМа. Никаких проблем с накоплением тут нет от слова совсем.
Добавлено after 2 minutes 5 seconds:
[uquote="Dimon456",url="/forum/viewtopic.php?p=4198384#p4198384"]А конечная цель, на дма все весит, все что можно повесить, и uart и spi и i2c, и куча прерываний.[/uquote]
Конечная цель - это НАЗНАЧЕНИЕ УСТРОЙСТВА, а не ваши ковыряния с интерфейсами и кодом.
И прекратите коверкать русский язык.
вИсит!!!!
Добавлено after 5 minutes 46 seconds:
[uquote="Dimon456",url="/forum/viewtopic.php?p=4198384#p4198384"]Но интервал времени между отсчетами должен быть постоянен, в противном случае это приведет к накоплению ошибки и неверному результату или "прыганию показаний" и никакие КИХ (FIR) БИХ (IIR) фильтры не помогут[/uquote]
Это вы сами придумали или рассказал кто? Какое еще нах накопление ошибки? Вы вообще понимаете о чем ведете разговор?
И с какого перепуга интервал будет изменяться, если запуск АЦП производится от стабильной частоты?
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
Но тогда и с вашим FIFO и с полосой пропускания шины не должно возникнуть ни каких проблем.КРАМ писал(а):Никаких проблем с накоплением тут нет от слова совсем.


