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

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

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


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
Alex    528
у меня есть но она для одного полного периуда
Дак выкеньте полвину таблицы и будет Вам ПолПерода :)

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

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

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

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


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

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

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

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

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

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


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

нужен такой

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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

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


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

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

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


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

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

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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


  • Сообщения

    • Надо было еще дописать, что конструктором "звучащих" безООСников стать невозможно, им нужно родиться, а иначе никак, ведь это дар божий  До грамотного инженера мне еще далеко, не спорю - сам знаю. Но в цепочке: грамотный инженер, Немо, Улис, вы находитесь в самом хвосте, вам даже до меня далеко. И когда своим гордиться нечем, остаётся гордиться чужой схемой от "грамотного инженера". 
    • тааааак,мс7 1.3.5  9.11.13     4 вольта 2.4.6   8.10.12 по нулям
    • В ролике показан процесс изготовления электронной зажигалки для поджига газовых плит.
      Отличительной чертой устройства является применение секционной катушки, вместо многослойной.
    • фигасе наработка, это даже если по 8 часов в день, получается 20 лет работы
    • 1. Светодиодная лампа , производитель -"REV" или "ОНЛАЙТ".
      Свет свечения - белый, без холодной синевы - 4000 K .
      Заявленная мощность - 10 Вт. Тип цоколя - Е27 .   цена - 70  руб.шт.  2. Светодиодная лампа , производитель -"REV" или "ОНЛАЙТ".
      Свет свечения - тёплый - 2700 K .
      Заявленная мощность - 10 Вт. Тип цоколя - Е27 .   цена - 70  руб.шт. - количество ограниченно. 3. Лампы светодиодные 7 Вт. производитель -"IEK" Тип цоколя - GU10. В наличии - 10 шт.  1 шт. - 65 руб. 4. Лампа энергосберегающая 11 Вт (по факту - 9 Вт) . Зеркальная. Фирма изготовитель - Feron .
      цвет свечения - тёплый (2700К) . Цоколь - Е 14 (миньон).
      Заявленный срок службы - 8000 часов. Размер - 50 Х 80 мм.   Стоимость -15 руб.шт. 5. Светильник скрытой установки . Производитель FERON. Тип цоколя E14.
      Цвет - хром "сфера" . Длина, мм - 85 . Ширина, мм - 85. Высота, мм - 96. Диаметр внутренний, мм -65.  Стоимость -25 руб.шт. 6. Лампа светодиодная 12 вольт , 2 W , 4000К .  Производитель FERON.  НА ЗАКАЗ .  1 шт. - 65 руб. 7. Удлинитель с функциями защиты  и системой контроля энергопотребления.   стоимость - 500 руб. шт.  8. RGB контроллер . Производитель ECOLA. максимальный выходной ток - 12 А.   стоимость - 290 руб. шт.  9. Лента светодиодная белая - 2800 К . 5 метров. 12 вольт. 4,8 Вт/м. стоимость - 290 руб. за упаковку. 10.  Лента светодиодная белая - 4200 К . 5 метров. 12 вольт. 4,8 Вт/м. стоимость - 290 руб. за упаковку. 11.  Лента светодиодная ЖЁЛТАЯ . 5 метров. 12 вольт. 4,8 Вт/м. стоимость - 290 руб. за упаковку. 12. Лампа светодиодная  2вт 230в цоколь - Е 14. Производитель FERON .теплый свет(2700К).- для холодильников и швейных машин -120 руб. шт.  13. Комплект потолочной проводки - потолочный стакан, провод с клемником и патроном(Е27) для бра или люстры. Длина провода - 1,8 метра. Цвет - оранжевый или зелёный.  Производитель - IKEA .  стоимость - 75 руб. шт.