x893 59 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба ++index_A; if (index_A >= SIZE_OF_TABLE) index_A = 0; чем не подходит ? И размер кратный 3 (для 120 градусов) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба 1 минуту назад, dimka76 сказал: На индекс накладывать маску, вот так Да, но это лишние вычислительные ресурсы, которые можно сэкономить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimir 2 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба Спецы это слишком заумно.А вот вы покажите как вы будете управлять частотой.?Каким образом модуляция будет "дышать" изменять частоту синуса? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба 4 минуты назад, x893 сказал: чем не подходит ? Но можно же обойтись без этого. Код будет короче, быстрее, элегантнее. 2 минуты назад, dimir сказал: А вот вы покажите как вы будете управлять частотой.? Может пора уже хоть немного почитать про прямой цифровой синтез? Вам уже и ссылку на статью Леонида Ивановича привели, где все разжевано проще некуда. 15 минут назад, Сергей Борщ сказал: uint32_t Phase_step; // Этой переменной определяем часоту. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 59 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба Каждый сам решает. 256 на 3 не делится, а 360 делится. Или 720. Зависит от точности синуса (млм что там надо синтезировать) 7 minutes ago, dimir said: Спецы это слишком заумно.А вот вы покажите как вы будете управлять частотой.?Каким образом модуляция будет "дышать" изменять частоту синуса? Таймер, DMA и CPU Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба 2 минуты назад, x893 сказал: 256 на 3 не делится, а 360 делится зато 2^32 делится с достаточной точностью. Можно складывать с аккумулятором фазы и результат сдвигать для получения индекса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 59 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба 4 minutes ago, Сергей Борщ said: зато 2^32 делится с достаточной точностью. Можно складывать с аккумулятором фазы и результат сдвигать для получения индекса. Можно. никто не запрещает. Аккумулятор фазы - очень сложно для меня. У нас в ПТУ этому не учили Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба On 8/22/2022 at 10:01 PM, Сергей Борщ said: size_t const PERIOD = 256; // должен быть степенью двойки uint8_t Envelope[PERIOD * 2]; // огибающая двух периодов синуса, но можно и более хитрую форму uint32_t Phase_acc; // аккумулятор фазы uint32_t Phase_step; // Этой переменной определяем часоту. void update() { Phase_acc += Phase_step; size_t Index = Phase_acc >> 24; Phase_A_out = Envelope[Index + 0 * PERIOD / 3] * Amplitude; Phase_B_out = Envelope[Index + 1 * PERIOD / 3] * Amplitude; Phase_C_out = Envelope[Index + 2 * PERIOD / 3] * Amplitude; } В вашем примере с именно вашими значениями, если переменную Index сделать uint8_t, то и таблицы на один период хватит и маску, предложенную мной, не надо. Все "автоматически" замаскируется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimir 2 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба В 22.08.2022 в 22:14, Сергей Борщ сказал: Может пора уже хоть немного почитать про прямой цифровой синтез? Вам уже и ссылку на статью Леонида Ивановича привели, где все разжевано проще некуда. Это кто такой профессор?.Дайте ссылку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба Только что, dimka76 сказал: Все "автоматически" замаскируется. Логично. 1 минуту назад, dimir сказал: Дайте ссылку Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimir 2 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба В 22.08.2022 в 22:18, x893 сказал: Таймер, DMA и CPU DMA?только эксперимент покажет.Я Фома не верующий в DMA. Но у нас нет DAC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 59 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба 4 minutes ago, dimir said: DMA?только эксперимент покажет.Я Фома не верующий в DMA. Но у нас нет DAC. Не повезло. Тогда R-2R поможет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVI-crak 0 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба On 8/23/2022 at 1:24 AM, x893 said: Аккумулятор фазы - очень сложно для меня. У нас в ПТУ этому не учили 2001 год, студент сдаёт диплом на модный тогда Z80. Престарелый электорат сонно кивает носом, решительно нихрена не понимая в теме. И тут один из них слышит знакомое слово аккумулятор.. - Скажите голубчик, аккумулятор у вас кислотный или щелочной? dimir - Нужен всего один таймер, настроенный на частоту шима, и несколько глобальных переменных. Таблица шима тоже только одна нужна. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 239 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба 8 часов назад, AVI-crak сказал: Да, у меня мотор на 20КГц шима перегревается, когда хавает 3,5А на холостых оборотах через инвертор. И почти холодный, когда работает от сети на прямую (1,4А). YASA-750, ШИМ=~10кГц, 400об/мин, ~300V, примерно те же ~3.5A по фазам, ~7.6A от батареи, шланги охлаждения (как видно по фотке) - не подключены. Холостой ход непрерывно ~20мин: внутренние датчики температуры не подключены, но внешний корпус - еле тёплый. Токи примерные, так как измеряются на нижней границе чувствительности (полный диапазон датчиков фазных токов = 900А, при том что АЦП=12бит). 8 часов назад, AVI-crak сказал: Инвертор не мой, а чистокровный супердешовый китаец - точно так-же как и у всех сейчас. У вас - китайский, у меня - свой. Не надо говорить за всех! 4 часа назад, Vasily_ сказал: В этом году грех жаловаться, дождей совсем нет, и плавимся мы а не моторы. Ну сегодня-то грех жаловаться - какой-никакой дождик, а немного намочил. По-крайней мере в Пурчике.... 2 часа назад, Сергей Борщ сказал: Да, но это лишние вычислительные ресурсы, которые можно сэкономить. Тогда действовать в обратную сторону - в декремент. На ARM-е будет немного меньше операций. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба Престарелый электорат Точно не ректорат? (Хотя и он никаким боком) ((-8Ж Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться