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    546
у меня есть но она для одного полного периуда
Дак выкеньте полвину таблицы и будет Вам ПолПерода :)

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

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

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

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


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

Вот, написал маленькую програмку для вычесления синусных значений 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

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


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

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

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

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

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


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

нужен такой

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
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    546
Алекс немогли бы вы переделать вашу програмку чтобы она выводила табличку для

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

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

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


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

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

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    274
.......Я обычно в экселе мучаюсь.

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

Ну словом "алгоритм" - этот процесс назвать нельзя. Собственно процесс - простое копирование 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    274

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

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

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


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

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

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

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


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

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

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


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

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

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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


  • Сообщения

    • Вот как то изначально верилось, что  с коллайдером что то не чисто. А "очкарики" в ОИЯИ банально отмывают деньги.  
    • Если вас Валерий никто в всерьез не воспринимает, может лучше больше времени уделять сыну и жене, а не диодам в желтом шарике? ---------------------------------------- Валерий Багницкий Все началось с того, что в моем компьютере исчез файл. Все попытки найти его были безуспешны. Побродив вдоволь по каталогам, и обнаружив там более раннюю версию этого файла, я осознал потерю. На последнем моем лазерном диске файла с таким именем не оказалось. Вспомнив о «Мастере и Маргарите», я подумал, что файлы стереть невозможно. Пространство могло быть исправлено кем-то во Времени. Бесспорно было то, что файл существовал в одном из параллельных миров. Шагнув в портал, я оказался на улице, залитой солнцем.
    • У них там на заднем плане (son-lux) "Днепр-14" никак НЧ воспроизвести не может - "захлёбывается". А так ничё: фантасмагория наркотического транса - психоделика называется... Вот только для тестирования лучше звуки естественные привлекать - синтетика самую причудливую форму имеет, известную только зуковухе компа, из которой её извлекали. Поэтому для воспроизведения годится всё, лишь бы торкало. А если торкает, то годится!   С уважением В.
    • А Интернет много пишет о вас. https://www.proza.ru/avtor/iskatelrazuma Цитата "Какое удовольствие поставить эксперимент и нанести удар в самый центр всей этой лжи, придуманный недалёкими людьми, кому нравилось произносить учёные слова и внедрять свои фамилии в названия явлений природы, получая за это деньги. Ведь знания невозможно получить к концу квартала, как это делается в большой корпорации под названием «Наука». Иногда требуется год, а иногда 30 лет. Истинные познания – удел экспериментаторов и одиночек. Коллективная наука – это нонсенс. Посмотрите куда завела нас коллективная наука, после того как появилась такая профессия «учёный». Все стремятся открыть закон. И бездарности в том числе. И открывают… по плану к концу квартала." Если вас Валерий никто в всерьез не воспринимает, может лучше больше времени уделять сыну и жене, а не диодам в желтом шарике?
    • @KRAB конечно спасибо за ответ, но что там должно меня просветить?  То что надо искать по lt 525? Дак тоже не выходит :/