Пн ноя 29, 2021 17:40:40
Dimon456 писал(а):51 51 TVS350V 330 и 13009?
astrahard писал(а):Или я что-то не понимаю?
Чт дек 16, 2021 10:18:19
Сб дек 18, 2021 13:10:26
Сб дек 18, 2021 14:11:51
Сб дек 18, 2021 14:23:51
Сб дек 18, 2021 14:48:11
Сб дек 18, 2021 15:28:54
Сб дек 18, 2021 16:27:12
Сб дек 18, 2021 17:40:06
Сб дек 18, 2021 20:29:05
На чистом СИjcxz писал(а):Я когда-то крутил на тактовой CPU=16МГц и частоте ШИМ=10кГц. Загрузка CPU правда тогда - по самые гланды, на ассемблере большая часть кода.
В моих тестах на мега168 16МГц, при частоте ШИМ 7,8кГц(128мкс), на расчет табличного синтеза и амплитуды для 6 каналов ШИМ требуется всего 11мкс, с учетом вхождения в прерывания и выхода, грубо, остается еще 100мкс, вагон времени.
Сб дек 18, 2021 21:59:51
На чистом СИjcxz писал(а):Я когда-то крутил на тактовой CPU=16МГц и частоте ШИМ=10кГц. Загрузка CPU правда тогда - по самые гланды, на ассемблере большая часть кода.
В моих тестах на мега168 16МГц, при частоте ШИМ 7,8кГц(128мкс), на расчет табличного синтеза и амплитуды для 6 каналов ШИМ требуется всего 11мкс, с учетом вхождения в прерывания и выхода, грубо, остается еще 100мкс, вагон времени.
Сб дек 18, 2021 22:24:06
jcxz писал(а):всего с 8КБ флеша.
Для тестаjcxz писал(а):Даже в этом случае у меня при компиляции в режиме debug размер образа был ~7КБ (в release с оптимизацией = ~6КБ). Т.е. - и так еле влезало.
AVR Memory Usage
----------
Device: atmega168p
Program: 1026 bytes
(.text + .data + .bootloader)
Data: 6 bytes
(.data + .bss + .noinit)
Сб дек 18, 2021 22:47:41
AVR Memory Usage
----------
Device: atmega168p
Program: 1026 bytes
(.text + .data + .bootloader)
Data: 6 bytes
(.data + .bss + .noinit)
Вс дек 19, 2021 08:01:31
Блин, я то думал, что речь шла о том что бы просто покрутить.jcxz писал(а):Я когда-то крутил на тактовой CPU=16МГц и частоте ШИМ=10кГц.
Какой смысл от такой точности?jcxz писал(а):точность расчёта синуса была около 16 бит
Вс дек 19, 2021 14:52:23
Какой смысл от такой точности?jcxz писал(а):точность расчёта синуса была около 16 бит
Вс дек 19, 2021 16:39:45
если у вас брать таблицу в 16 бит, это у вас 65536 точек что ли?jcxz писал(а):таблица в 128 значений имеет точность 7 бит (по аргументу), у меня =16 бит
У вас ШИМ 10кГц, туда физически нельзя запихать более 10000 точек.jcxz писал(а):Таймеры у STM8 - 16 битные
А это не верно.jcxz писал(а):И частота у меня меняется плавно, а не как у вас с таблицей - скачками.
А если мало таблицы в 128 точек, ни вопрос, можно и 256 точек, 512 точек, 1024 точек.Пусть мне нужно генерировать частоту 50Гц, учитывая, что основную процедуру таймер исполняет 7812 раз в секунду
65536 / (7812 / 50Гц) = 419
65536 / (7812 / 50,25Гц) = 422
65536 / (7812 / 50,5Гц) = 424
65536 / (7812 / 50,75Гц) = 426
65536 / (7812 / 51Гц) = 428
Точность установки данного метода ~0,125Гц
Пн дек 20, 2021 18:15:25
Пн дек 20, 2021 21:59:26
И все таки мне не понятно, откуда взялись 16 бит и 7 бит?jcxz писал(а):что вычисления с точностью 16 бит однозначно точнее чем 7 бит.
но что бы получить 16 битный ШИМ, если конечно речь о этих 16 битах идет, то по вашей формуле: FFFF*10кГц = 655МГц? Может что-то опять не так?jcxz писал(а):Поделите частоту тактирования таймера на 10кГц - вот такую дискретность позволяют обеспечить таймеры.
Раз таблицу не используете - значит просчитываешь синус на лету (не которые тут уже пытались просчитывать синус быстрее 4 пня в месте с атлоном, а один да же умудрился за 30 тактов), по другому синус не получить.jcxz писал(а):Ну пускай не квадратных, а 128-угольных.
Не нравится?jcxz писал(а):360/128=~2.8
NCO модуль есть только в PIC, таймер это делитель, 2 4 8 16 и т.п.jcxz писал(а):А это что если не скачки?
Пн дек 20, 2021 22:57:04
Вт дек 21, 2021 07:41:30
Я же сказал - это шутка, но, к примеру, на F100 с размером флеша 128кБат вполне реализуем.jcxz писал(а): Объясните - как?
Значит скачки есть, куда уж без них.jcxz писал(а):Есть конечно.
Матом загнуть что ли?jcxz писал(а):Только у меня они размером = 360/65536 градусов, а не 360/128. Почувствуйте разницу!