На всякий случай, напоминаю завет П.П. Шарикова: "Неприличными словами не выражацца!"
Это фрагмент кода от контроллера управления турбинами, в системе многоступенчатого наддува. Первая версия уже успешно работает, но я хочу ее улучшить. Сделать удобный для настройки интерфейс и некоторые параметры перевести на двухмерные карты. Поскольку разрядность карт будет сравнительно не большой, то так же надо будет внедрить функцию сглаживания (интерполяции), при считывании данных с двухмерных поверхностей. Т.е., что бы данные из карты считывались не ступенчато, а плавно изменяясь от точки к точке. Я так понимаю, что для этого придется их считывать одновременно в двух соседних точках и одновременно по двум осям. И затем уже сравнивать полученное со входным сигналом и вычислять интерполированные значения ??
Поскольку разрядность карт будет сравнительно не большой, то так же надо будет внедрить функцию сглаживания (интерполяции), при считывании данных с двухмерных поверхностей. Т.е., что бы данные из карты считывались не ступенчато, а плавно изменяясь от точки к точке. Я так понимаю, что для этого придется их считывать одновременно в двух соседних точках и одновременно по двум осям. И затем уже сравнивать полученное со входным сигналом и вычислять интерполированные значения ??
Liske. линейная интерполяция - математически вещь элементарная, ее в средней школе изучают под названием "правило пропорции". Двумерная интерполяция по сути не сложнее одномерной. главное только четко представлять. как у вас данные организованы в матрице.
...считывались не ступенчато, а плавно изменяясь от точки к точке. Я так понимаю, что для этого придется их считывать одновременно в двух соседних точках и одновременно по двум осям. И затем уже сравнивать полученное со входным сигналом и вычислять интерполированные значения ??
В четырех соседних точках, если подразумевается билинейная интерполяция. Для бикубической, etc. точек нужно больше.
Поскольку разрядность карт будет сравнительно не большой, то так же надо будет внедрить функцию сглаживания (интерполяции), при считывании данных с двухмерных поверхностей. Т.е., что бы данные из карты считывались не ступенчато, а плавно изменяясь от точки к точке. Я так понимаю, что для этого придется их считывать одновременно в двух соседних точках и одновременно по двум осям. И затем уже сравнивать полученное со входным сигналом и вычислять интерполированные значения ??
Liske. линейная интерполяция - математически вещь элементарная, ее в средней школе изучают под названием "правило пропорции". Двумерная интерполяция по сути не сложнее одномерной. главное только четко представлять. как у вас данные организованы в матрице.
Да, я тоже так представляю, что теоретически не должна быть сложная. Но вот практически, учитывая мои тройки по математике в школе..)) Если вас не затруднит, могли бы показать на конкретном примере, как с наименьшими танцами с бубном это решается ? Как корректно извлечь точки, между которых в настоящий момент времени считываются данные из массива и как потом эти данные обработать ??
...считывались не ступенчато, а плавно изменяясь от точки к точке. Я так понимаю, что для этого придется их считывать одновременно в двух соседних точках и одновременно по двум осям. И затем уже сравнивать полученное со входным сигналом и вычислять интерполированные значения ??
В четырех соседних точках, если подразумевается билинейная интерполяция. Для бикубической, etc. точек нужно больше.
А какая интерполяция для поставленной задачи нужна ? Насколько я себе представляю, четырех точек вполне должно хватать. Т.е. режимная точка всегда будет находиться только между четырьмя точками на массиве.
Да, я тоже так представляю, что теоретически не должна быть сложная. Но вот практически, учитывая мои тройки по математике в школе..)) Если вас не затруднит, могли бы показать на конкретном примере, как с наименьшими танцами с бубном это решается ? Как корректно извлечь точки, между которых в настоящий момент времени считываются данные из массива и как потом эти данные обработать ??
Уважаемые знатоки! Прошу помочь мне найти мою ошибку из за которой данные не корректно сохраняются в EERPROM. Проявляется эта ошибка как перемешивание данных массивов при сохранении ( а возможно и при считывании из памяти). Я так подозреваю, что я не корректно назначаю адреса в ЕЕRprom, на которые должны сохраняться данные из массивов..
Кажется сам нашел проблему: Данные массивов были объявлены как int, хотя и содежели меньше одного бита. Сейчас изменил на byte и пока вроде ошибок при сохранении не вижу..
Liske, Вы путаетесь в терминологии, из-за чего как путаете других, так и сами, похоже, плохо представляете, что Вам нужно.
Ни у int, ни у byte нет и не может быть знаков. Знаки (в данном контексте) - атрибут текстового (в виде строки символов) представления числа. Само число и его текстовое представление - совершенно разные сущности.
Для того, чтобы прочитать, записать или передать по каналу связи некую сущность, нужно хорошо представлять структуру этой сущности. А структура у строки и числа совершенно различная. Думаю, из-за непонимания этого факта у Вас и не получается сделать то, что Вы хотите.
Liske, Вы путаетесь в терминологии, из-за чего как путаете других, так и сами, похоже, плохо представляете, что Вам нужно.
Ни у int, ни у byte нет и не может быть знаков. Знаки (в данном контексте) - атрибут текстового (в виде строки символов) представления числа. Само число и его текстовое представление - совершенно разные сущности.
Для того, чтобы прочитать, записать или передать по каналу связи некую сущность, нужно хорошо представлять структуру этой сущности. А структура у строки и числа совершенно различная. Думаю, из-за непонимания этого факта у Вас и не получается сделать то, что Вы хотите.
Спасибо за развернутый ответ.. Но к моему счастью я уже сам решил проблему. Теперь все сохраняется и считывается как надо.
Поздравляю. Теперь мы знаем, что бит больше не фундаментальная единица хранения информации. А из чего он состоит, паясни, из битокварков?
Ага. Британские ученые с помощью Большого Битового Коллайдера определили, что бит состоит из двух старших битокварков и одного младшего битокварка. Которые находятся в битоглюонном поле и не могут существовать отдельно друг от друга.
Британские ученые с помощью Большого Битового Коллайдера определили, что бит состоит из двух старших битокварков и одного младшего битокварка. Которые находятся в битоглюонном поле и не могут существовать отдельно друг от друга.
В чём явно проявилось вмешательство русских хакеров, которое теперь уже нельзя отрицать и которое Россия должна объяснить не поднее 1 января прошлого года, иначе британские учёные выскажут серьёзную озабоченность.
Дык, не я шаман - это же всё описано в документации на домашнем сайте ардуино. RTFM, так cказать :)
В итоге вот как получилось:
Следующий пугающий меня этап, это интерполяция между ячейками при считывании данных. Пока даже не представляю, как это может быть реализовано..
На всякий случай, напоминаю завет П.П. Шарикова: "Неприличными словами не выражацца!"
На всякий случай, напоминаю завет П.П. Шарикова: "Неприличными словами не выражацца!"
Ну, это уже сутевая часть Вашей задачи. Её никто лучше Вас не знает.
Поскольку разрядность карт будет сравнительно не большой, то так же надо будет внедрить функцию сглаживания (интерполяции), при считывании данных с двухмерных поверхностей. Т.е., что бы данные из карты считывались не ступенчато, а плавно изменяясь от точки к точке. Я так понимаю, что для этого придется их считывать одновременно в двух соседних точках и одновременно по двум осям. И затем уже сравнивать полученное со входным сигналом и вычислять интерполированные значения ??
Liske. линейная интерполяция - математически вещь элементарная, ее в средней школе изучают под названием "правило пропорции". Двумерная интерполяция по сути не сложнее одномерной. главное только четко представлять. как у вас данные организованы в матрице.
...считывались не ступенчато, а плавно изменяясь от точки к точке. Я так понимаю, что для этого придется их считывать одновременно в двух соседних точках и одновременно по двум осям. И затем уже сравнивать полученное со входным сигналом и вычислять интерполированные значения ??
В четырех соседних точках, если подразумевается билинейная интерполяция. Для бикубической, etc. точек нужно больше.
Поскольку разрядность карт будет сравнительно не большой, то так же надо будет внедрить функцию сглаживания (интерполяции), при считывании данных с двухмерных поверхностей. Т.е., что бы данные из карты считывались не ступенчато, а плавно изменяясь от точки к точке. Я так понимаю, что для этого придется их считывать одновременно в двух соседних точках и одновременно по двум осям. И затем уже сравнивать полученное со входным сигналом и вычислять интерполированные значения ??
Liske. линейная интерполяция - математически вещь элементарная, ее в средней школе изучают под названием "правило пропорции". Двумерная интерполяция по сути не сложнее одномерной. главное только четко представлять. как у вас данные организованы в матрице.
...считывались не ступенчато, а плавно изменяясь от точки к точке. Я так понимаю, что для этого придется их считывать одновременно в двух соседних точках и одновременно по двум осям. И затем уже сравнивать полученное со входным сигналом и вычислять интерполированные значения ??
В четырех соседних точках, если подразумевается билинейная интерполяция. Для бикубической, etc. точек нужно больше.
Да, я тоже так представляю, что теоретически не должна быть сложная. Но вот практически, учитывая мои тройки по математике в школе..)) Если вас не затруднит, могли бы показать на конкретном примере, как с наименьшими танцами с бубном это решается ? Как корректно извлечь точки, между которых в настоящий момент времени считываются данные из массива и как потом эти данные обработать ??
Ну, то есть в Гугле Вас забанили...
Начните с этого:
https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9...
Там, правда, приводится частный случай, и расписано все довольно примитивно и не всегда верно, но вполне возможно, Вам этого окажется достаточно.
Уважаемые знатоки! Прошу помочь мне найти мою ошибку из за которой данные не корректно сохраняются в EERPROM. Проявляется эта ошибка как перемешивание данных массивов при сохранении ( а возможно и при считывании из памяти). Я так подозреваю, что я не корректно назначаю адреса в ЕЕRprom, на которые должны сохраняться данные из массивов..
Кажется сам нашел проблему: Данные массивов были объявлены как int, хотя и содежели меньше одного бита. Сейчас изменил на byte и пока вроде ошибок при сохранении не вижу..
Данные массивов были объявлены как int, хотя и содежели меньше одного бита.
Поздравляю. Теперь мы знаем, что бит больше не фундаментальная единица хранения информации. А из чего он состоит, паясни, из битокварков?
Данные массивов были объявлены как int, хотя и содежели меньше одного бита.
Поздравляю. Теперь мы знаем, что бит больше не фундаментальная единица хранения информации. А из чего он состоит, паясни, из битокварков?
Liske, Вы путаетесь в терминологии, из-за чего как путаете других, так и сами, похоже, плохо представляете, что Вам нужно.
Ни у int, ни у byte нет и не может быть знаков. Знаки (в данном контексте) - атрибут текстового (в виде строки символов) представления числа. Само число и его текстовое представление - совершенно разные сущности.
Для того, чтобы прочитать, записать или передать по каналу связи некую сущность, нужно хорошо представлять структуру этой сущности. А структура у строки и числа совершенно различная. Думаю, из-за непонимания этого факта у Вас и не получается сделать то, что Вы хотите.
Liske, Вы путаетесь в терминологии, из-за чего как путаете других, так и сами, похоже, плохо представляете, что Вам нужно.
Ни у int, ни у byte нет и не может быть знаков. Знаки (в данном контексте) - атрибут текстового (в виде строки символов) представления числа. Само число и его текстовое представление - совершенно разные сущности.
Для того, чтобы прочитать, записать или передать по каналу связи некую сущность, нужно хорошо представлять структуру этой сущности. А структура у строки и числа совершенно различная. Думаю, из-за непонимания этого факта у Вас и не получается сделать то, что Вы хотите.
Поздравляю. Теперь мы знаем, что бит больше не фундаментальная единица хранения информации. А из чего он состоит, паясни, из битокварков?
Ага. Британские ученые с помощью Большого Битового Коллайдера определили, что бит состоит из двух старших битокварков и одного младшего битокварка. Которые находятся в битоглюонном поле и не могут существовать отдельно друг от друга.