bekor

8 Битная Таблица Синуса

33 сообщения в этой теме

bekor    2

помогите пожалуйста найти таблицу синуса для подачи на 8 битный ЦАП

у меня есть но она для одного полного периуда а мне нужен полупериуд с 8 битной дискретизацией

если у кого есть киньте пожалуйста сюда

заранее спасибо

вот таблица которая имеется

0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,
0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,
0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf5,
0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,
0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc,
0xda,0xd8,0xd5,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb3,
0xb0,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x98,0x95,0x92,0x8f,0x8c,0x89,0x86,0x83,
0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x63,0x60,0x5d,0x5a,0x57,0x54,0x51,
0x4f,0x4c,0x49,0x46,0x43,0x40,0x3e,0x3b,0x38,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,
0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,0x12,0x10,0x0f,0x0d,0x0c,0x0a,
0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08,
0x09,0x0a,0x0c,0x0d,0x0f,0x10,0x12,0x13,0x15,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x23,
0x25,0x27,0x2a,0x2c,0x2e,0x31,0x33,0x36,0x38,0x3b,0x3e,0x40,0x43,0x46,0x49,0x4c,
0x4f,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x67,0x6a,0x6d,0x70,0x73,0x76,0x79,0x7c

нужен такойже но для одного полупериуда ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    551
у меня есть но она для одного полного периуда
Дак выкеньте полвину таблицы и будет Вам ПолПерода :)

0x80 это начало полупериода. Обратите внимание, в середине оно повторяется, а дальше, 2-ая половина, это инверсные значения 1-ой половины.

Такую таблицу можно самостоятельно создать, с помощью калькулятора :)

PS: Период пишеться через О, а не через У .

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    551

Вот, написал маленькую програмку для вычесления синусных значений sin.rar

Пожалуйста, пользуйтесь :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
bekor    2

Alex Большое вам спасибо за програмку

но кажется вы меня неправильно поняли :(

если взять половину этой таблицы то получиться полупериод НО будет не 8 битная разрядность а 7 битная

ктомуже амплитуда будет не от 0 до 255 а от 0 до 127 или от 127 до 255

а мне нужно чтобы полпериод имел 8 битную разрядность и мин. макс. точки были 0х00 и 0xFF

на рисунке виднее

нужен такой

post-25321-1256018016_thumb.jpg

а не такой

post-25321-1256018026_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

my504    356

becor, вообще нет никакой проблемы. Открываете Excel и строите таблицу с нужным шагом и последнюю колонку выводите в гексакоде (есть встроенная матфункция децимал в хекс). И прямо ее и копируете копипастом в тело программы...

ЗЫ. Кстати требуется только 90 градусов, поскольку остальное выбирается путем расчета адреса (правильная индексация массива)

Изменено пользователем my504

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    551
на рисунке виднее

нужен такой

На рисунке у Вас не синус, а косинус :)

Вобщем смысл ясен, Вам нужно без смещения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
NebsteR    743

полдня прошло с момента открытия темы))) уж наверное можно было-бы сделать таблицу и самому))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
bekor    2
Открываете Excel и строите таблицу .........

к сожалению я экзелем невладею :(

Алекс немогли бы вы переделать вашу програмку чтобы она выводила табличку для

полупериода с 8 битной дискретизацией

был бы очень признателен :rolleyes:

полдня прошло с момента открытия темы))) уж наверное можно было-бы сделать таблицу и самому))

еслибы я мог составить эту таблицу сам, то необратился бы к вам за помосчю

В математике я несилен :huh:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
wowa    4

вот с вашей же таблицы!! Только там может быть на конце будет один байт лишний...

0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,
0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc,
0xda,0xd8,0xd5,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb3,
0xb0,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x98,0x95,0x92,0x8f,0x8c,0x89,0x86,0x83,
0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x63,0x60,0x5d,0x5a,0x57,0x54,0x51,
0x4f,0x4c,0x49,0x46,0x43,0x40,0x3e,0x3b,0x38,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,
0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,0x12,0x10,0x0f,0x0d,0x0c,0x0a,
0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0x00

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
bekor    2
вот с вашей же таблицы!!

Нет нет это совсем нето :(

ладно я объясню суть проблемы тогда может станет яснее

короче надо управлять нагрузкой синусоидальным током через полномостовой драйвер

так вот выводим последовательно всю таблицу (полупериод) на ЦАП, потом меняем полярность тока,

и опять выводим туже последовательность,

получается полный период синусного тока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
wowa    4

Полный синус можно посчитать и из четверти табицы!!! Дело не в этом. Если у вас есть место для полной таблицы - непарьте голову и залейте её туда!!! Проще её будет пользовать.. Все эти обрезания таблицы делают исключительно для экономии места в флеши!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
bekor    2

да нет дело вовсе не в экономии памяти

дело в том что мне нужен только полупериод с амплитудой 0-255

тоесть итого у меня будет от -255 до 255

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    551
Алекс немогли бы вы переделать вашу програмку чтобы она выводила табличку для

полупериода с 8 битной дискретизацией

Вечером сделаю, исходник дома. Заного не хочется писать :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    551

Пожалуйста. Сделал для Вашего случая :)

sin.rar

Таблица 256 точек

0x00,0x03,0x06,0x09,0x0C,0x0F,0x12,0x15,0x18,0x1C,0x1F,0x22,0x25,0x28,0x2B,0x2E,0x31,0x34,0x37,0x3A,0x3D,0x40,
0x44,0x47,0x4A,0x4D,0x4F,0x52,0x55,0x58,0x5B,0x5E,0x61,0x64,0x67,0x6A,0x6D,0x6F,0x72,0x75,0x78,0x7A,0x7D,0x80,0x83,0x85,
0x88,0x8B,0x8D,0x90,0x92,0x95,0x97,0x9A,0x9C,0x9F,0xA1,0xA4,0xA6,0xA8,0xAB,0xAD,0xAF,0xB2,0xB4,0xB6,0xB8,0xBA,0xBC,
0xBF,0xC1,0xC3,0xC5,0xC7,0xC9,0xCA,0xCC,0xCE,0xD0,0xD2,0xD4,0xD5,0xD7,0xD9,0xDA,0xDC,0xDD,0xDF,0xE0,0xE2,0xE3,
0xE5,0xE6,0xE7,0xE9,0xEA,0xEB,0xEC,0xED,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF4,0xF5,0xF6,0xF7,0xF8,0xF8,0xF9,0xFA,0xFA,0xFB,
0xFB,0xFC,0xFC,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFD,0xFD,0xFD,0xFC,
0xFC,0xFB,0xFB,0xFA,0xFA,0xF9,0xF8,0xF8,0xF7,0xF6,0xF5,0xF4,0xF4,0xF3,0xF2,0xF1,0xF0,0xEF,0xED,0xEC,0xEB,0xEA,0xE9,0xE7,
0xE6,0xE5,0xE3,0xE2,0xE0,0xDF,0xDD,0xDC,0xDA,0xD9,0xD7,0xD5,0xD4,0xD2,0xD0,0xCE,0xCC,0xCA,0xC9,0xC7,0xC5,0xC3,0xC1,
0xBF,0xBC,0xBA,0xB8,0xB6,0xB4,0xB2,0xAF,0xAD,0xAB,0xA8,0xA6,0xA4,0xA1,0x9F,0x9C,0x9A,0x97,0x95,0x92,0x90,0x8D,0x8B,0x88,
0x85,0x83,0x80,0x7D,0x7A,0x78,0x75,0x72,0x6F,0x6D,0x6A,0x67,0x64,0x61,0x5E,0x5B,0x58,0x55,0x52,0x4F,0x4D,0x4A,0x47,0x44,
0x40,0x3D,0x3A,0x37,0x34,0x31,0x2E,0x2B,0x28,0x25,0x22,0x1F,0x1C,0x18,0x15,0x12,0x0F,0x0C,0x09,0x06,0x03,0x00

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
bekor    2
Пожалуйста. Сделал для Вашего случая :)

sin.rar

Круто, теперь это то что надо !!!

Алекс, большое вам человеческое СПАСИБО

вы мне очень очень помогли :rolleyes: :rolleyes: :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
NebsteR    743

а может проще по формуле высчитывать динамически, чем тратить ценную память?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
terminal    0
Пожалуйста. Сделал для Вашего случая

sin.rar ( 3,87 килобайт ) Кол-во скачиваний: 5

А Можно написать на все случаи жизни, тоже очень надо.

Я обычно в экселе мучаюсь.

Хотелось бы переменную амплитуду от 0-255,пременную длинну 0-255, и разные формы полукруг,треугольник,элепс,трапецию.

Если не сложно конечно :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    356
.......Я обычно в экселе мучаюсь.

"Вы просто не умеете его готовить..." (с)

Эксель позволяет впрямую копипастить полученный расчет в программу. Для этого нужно сформатировать выходные данные в синтаксисе исходного листинга (асм или си).

Это совершенно универсальный инструмент...

Слово "элепс" пишется по русски ЭЛЛИПС..., а существительное длиНа с одной Н, в отличии от прилагательного "длинный", где одна Н от корня, а вторая - суффикс...

Изменено пользователем my504

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
terminal    0
.......Я обычно в экселе мучаюсь.

"Вы просто не умеете его готовить..." (с)

Эксель позволяет впрямую копипастить полученный расчет в программу. Для этого нужно сформатировать выходные данные в синтаксисе исходного листинга (асм или си).

Это совершенно универсальный инструмент...

Слово "элепс" пишется по русски ЭЛЛИПС..., а существительное длиНа с одной Н, в отличии от прилагательного "длинный", где одна Н от корня, а вторая - суффикс...

Учить меня Русскому уже позно, он ко мне не липнет.Пробовал несколько раз изучать заново, бесполезно. :(

"Вы просто не умеете его готовить..." (с)

Эксель позволяет впрямую копипастить полученный расчет в программу. Для этого нужно сформатировать выходные данные в синтаксисе исходного листинга (асм или си).

Это совершенно универсальный инструмент...

Если Вам не трудно, опишите алгоритм передачи данных.

Изменено пользователем terminal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    356

Ну словом "алгоритм" - этот процесс назвать нельзя. Собственно процесс - простое копирование Ctrl-C ... Ctrl-V, а вот форматирование под синтаксис асма или си имеет следующие особенности.

Сначала готовим обычную вертикальную таблицу: первая колонка - аргумент (шаг аргумента выбираете сами, в памяти МК нумерация будет от нуля) , вторая - функция (все в десятичном представлении). Я очень надеюсь, что Вы умеете размножать функциональные ячейки путем протягивания крестообразным указателем правой нижней угловой точки ячейки, иначе действительно будут мучения. Если не умеете, скажите - объясню.

Третья колонка - это отнормированная к единице функция. И одновременно умноженная на максимальное число в разрядности МК. Т.е. для синуса получится, что нормировки не требуется (он и так максимум равен 1), а вот умножить на 255 (для 8 разр. представления) необходимо.

Итак, имеем вертикальный столбец с десятичным представлением. Можно его перевести в шестнадцатиричное имеющейся в Экселе функцией, но можно оставить и так.

Теперь вставляем ПЕРЕД финишной колонкой еще одну пустую. В ней копируем необходимые перед числами символы: пустая колонка - один пробел, заполненная - ее текстовое содержимое плюс один пробел. Что бы перед числом была точка без пробела (десятичное представление) или 0x (для гекса), нужно отформатировать ячейки финишной колонки. Для этого их нужно выделить обычным методом и открыть меню форматирования ячейки (формат представления чисел). В этом меню есть строка "все форматы", выбираем ее и в открывшемся окне зыписываем текст перед величиной в кавычках) - можно выбрать как основу для исправления имеющиеся в этом окне варианты. Там интуитивно понятен синтаксис форматирования. После подтверждения выбранного и исправленного, текст в колонке результата примет необходимый для копирования вид.

Далее выделяете необходимые для копирования колонки и вставляете в код. Все.

Изменено пользователем my504

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
terminal    0
Ну словом "алгоритм" - этот процесс назвать нельзя. Собственно процесс - простое копирование Ctrl-C ... Ctrl-V, а вот форматирование под синтаксис асма или си имеет следующие особенности.

Сначала готовим обычную вертикальную таблицу: первая колонка - аргумент (шаг аргумента выбираете сами, в памяти МК нумерация будет от нуля) , вторая - функция (все в десятичном представлении). Я очень надеюсь, что Вы умеете размножать функциональные ячейки путем протягивания крестообразным указателем правой нижней угловой точки ячейки, иначе действительно будут мучения. Если не умеете, скажите - объясню.

Третья колонка - это отнормированная к единице функция. И одновременно умноженная на максимальное число в разрядности МК. Т.е. для синуса получится, что нормировки не требуется (он и так максимум равен 1), а вот умножить на 255 (для 8 разр. представления) необходимо.

Итак, имеем вертикальный столбец с десятичным представлением. Можно его перевести в шестнадцатиричное имеющейся в Экселе функцией, но можно оставить и так.

Теперь вставляем ПЕРЕД финишной колонкой еще одну пустую. В ней копируем необходимые перед числами символы: пустая колонка - один пробел, заполненная - ее текстовое содержимое плюс один пробел. Что бы перед числом была точка без пробела (десятичное представление) или 0x (для гекса), нужно отформатировать ячейки финишной колонки. Для этого их нужно выделить обычным методом и открыть меню форматирования ячейки (формат представления чисел). В этом меню есть строка "все форматы", выбираем ее и в открывшемся окне зыписываем текст перед величиной в кавычках) - можно выбрать как основу для исправления имеющиеся в этом окне варианты. Там интуитивно понятен синтаксис форматирования. После подтверждения выбранного и исправленного, текст в колонке результата примет необходимый для копирования вид.

Далее выделяете необходимые для копирования колонки и вставляете в код. Все.

Ну это я и так делаю.Просто эксель в копируемых данных всавляет лишний пробел который приходится удалять, еще он копирует все в одну строку в этом случае тоже приходится править.

		.db  0,   6, 13, 19, 25, 31, 38, 44
	.db 50,  56, 62, 69, 75, 81, 87, 92
	.db 98, 104,110,115,121,127,132,137
	.db 143,148,153,158,163,168,172,177

а эксель 3, 6, 9, 12, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 51,

PS: Форум автоматически удалил лишние пробелы

P.S.S. Используйте правильные ТЕГИ и будет всё пучком!!! / Wowa.

В строке экселя, а не кода.

Изменено пользователем terminal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    356

Пробел перед величиной не влияет на код, наоборот читабельность повышается.

У меня копирует ровно так же, как в таблице - данные в колонку - копия в колонку, данные в строку - копия в коде тоже в строку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
terminal    0
Пробел перед величиной не влияет на код, наоборот читабельность повышается.

У меня копирует ровно так же, как в таблице - данные в колонку - копия в колонку, данные в строку - копия в коде тоже в строку.

С этим не согласен, был момент когда после такого копирования ASM вставил ноль в код.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    356

Что это за момент? И что за "ноль в коде"? :o Приведите пример.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
terminal    0
Что это за момент? И что за "ноль в коде"? :o Приведите пример.

Копировал из Экселя длинную таблицу когда в AVR Studio 4, скомпилировал оказалось что не работает, начал проверять пошагово оказалось что каким то образом компилятор вставил ноль в нутрь таблицы.Удалил все пробелы сформированные Экселем, все заработало.Теперь удаляю их всегда.

Пример в коде 0xff,0,0xff в таблице 0xff,пробел от экселя 0xff

Изменено пользователем terminal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сообщения

    • А пищалка была припаяна одним выводом к плюсу или к минусу часов?
    •   Илья, на практике не очень-то и просто, но делают-таки. Вопрос-ответ лежит несколько в иной плоскости - для чего делают, зачем. Какава цель, такавы и АС - "и напольники, и полочники."(с)    А зачем? В визатоновской pdf.ке всё хорошо расписано про топазик - зачем-почему оно так сделано; при чём на 4'-динамике, который в каком-то другом оформлении никогда не дал бы того, что изображено на прилагаемом в описании графике.Что в общем-то подтвердил и Игорь(meshin) в своём варианте, и что получилось у меня в моём - в случае использования советских 4'-ых 25ГДН... - довольно-таки прилично, с приемлемым качеством басят даже ниже Fs, при чём без какого-либо намёка на пердёж. 
    • @upimm Года два-три примерно. Я не знаю когда их контора покупала. Стояли в питании уличной иллюминации  - всякие там завезды, флаги России и т.п. Но электролиты я как раз все поменял. Там в основном в них и была проблема. Ну в паре еще была замена TL431 и оптопары P.S Кстати остался всего один. Сначала дал объявление в местные газеты и на сайты, было затишье. А как тут написал как прорвало...
    • Из даташита  При 12В однополярного у нее Рвых около 10Вт. То есть почти столько же сколько у TDA2005 на два канала А специализированные м/с нужно ПОКУПАТЬ, а я делал из того что есть в наличии Нет у меня еще есть ТА8268 как раз специализированная но 4*20Вт ИМХО слишком жирно для кЕтайской балалайки Как я написал выше это жирно для этой балалайки   Странно. Я думал что он стоит для развязки питания от аккумулятора и от бортовой сети. Для защиты от переполюсовки стояло бы два. А так один - анодом к проводу аккумулятора, катодом к ноге питания TDA2005 и к ней же напрямую провод от бортсети (замка зажигания)
    • https://ru.aliexpress.com/store/product/TDA7377-amplifier-board-2-0-double-track-no-noise-amplifier-module-bookshelf-speakers-DC12V-power/2413055_32841968924.html?spm=a2g0v.search0604.3.15.19d977d4aZbxVF&s=p&ws_ab_test=searchweb0_0,searchweb201602_4_10065_10068_10059_10884_10887_10696_100031_10084_10083_10103_5723515_10618_10307_10301_448,searchweb201603_2,ppcSwitch_7&algo_expid=35b61bf3-e241-49d1-a9b1-1f1f66b8c9d5-2&algo_pvid=35b61bf3-e241-49d1-a9b1-1f1f66b8c9d5&priceBeautifyAB=0 Рекомендуют вот такой радиатор (хватает).