Mar. 22nd, 2008
Комрады-програмеры, помощь зала нужна.
Mar. 22nd, 2008 02:13 amПростейшая задача, но я почему-то не могу нащупать элегантное решение.
Есть такая задачечка: сделать генератор сигналов Совершенно Произвольной Формы. Техническое обеспечение: микропроцессор и ЦАП. Всё работает, иного и не следовало ожидать.
Подзадача, на которой я торможу: генератор линейных (в смысле - буквально линейшых, вида A*x+B) сигналов. Нет, сделать её "в лоб" можно, и ничего тут такого нет. Но мне совсем не хочется заставлять проц считать в плавающей точке - просто потому, что это отнюдь не Атлон64, не Пентиум и даже не 386 - это восьмибитный микроконтроллер, и вычислительные способности у него далеко не самые выдающиеся. Можно, конечно, ещё на fixed point попробовать, но это неспортивно...
Частично задача решена при помощи алгоритма Брезенхама. Он прекрасно работает, но у него есть исключение - если наклон линии больше 45 градусов (по модулю, т.е. наклон и отрицательный может быть), то алгоритм перестаёт работать. В принципе, его можно было бы перевернуть зеркально относительно этих 45 градусов, если бы не одно ограничение - выходной-то сигнал, фактически, одномерный! Т.е. сам алгоритм генерации идёт вдоль оси t, она же ось x. Нет возможности поменять местами x и y, нет возможности забабахать огромные массивы и т.п., и т.д. Нет так же возможности долго думать между отсчётами - сигнал должен генериться без провалов и потерь выборок. Т.е. алгоритм должен быть строго итерационным, простым и без рекурсий.
Есть ли какие-нибудь общие соображения на эту тему? Или безнадёга и придётся, блин, всё-таки решать "в лоб"?
Есть такая задачечка: сделать генератор сигналов Совершенно Произвольной Формы. Техническое обеспечение: микропроцессор и ЦАП. Всё работает, иного и не следовало ожидать.
Подзадача, на которой я торможу: генератор линейных (в смысле - буквально линейшых, вида A*x+B) сигналов. Нет, сделать её "в лоб" можно, и ничего тут такого нет. Но мне совсем не хочется заставлять проц считать в плавающей точке - просто потому, что это отнюдь не Атлон64, не Пентиум и даже не 386 - это восьмибитный микроконтроллер, и вычислительные способности у него далеко не самые выдающиеся. Можно, конечно, ещё на fixed point попробовать, но это неспортивно...
Частично задача решена при помощи алгоритма Брезенхама. Он прекрасно работает, но у него есть исключение - если наклон линии больше 45 градусов (по модулю, т.е. наклон и отрицательный может быть), то алгоритм перестаёт работать. В принципе, его можно было бы перевернуть зеркально относительно этих 45 градусов, если бы не одно ограничение - выходной-то сигнал, фактически, одномерный! Т.е. сам алгоритм генерации идёт вдоль оси t, она же ось x. Нет возможности поменять местами x и y, нет возможности забабахать огромные массивы и т.п., и т.д. Нет так же возможности долго думать между отсчётами - сигнал должен генериться без провалов и потерь выборок. Т.е. алгоритм должен быть строго итерационным, простым и без рекурсий.
Есть ли какие-нибудь общие соображения на эту тему? Или безнадёга и придётся, блин, всё-таки решать "в лоб"?
Свидетелем редкостного единодушия у скандальных бабок стал я. В трамвае то случилось, коим я воспользовался проезда для. Бабок старых несколько, рогами сцепившись, удобное место поделить не смогли. Разругались тотчас, и в борьбы запале обе гнать начали, что "это вы за медведева голосовали".
Потом оказалось, что обе голосовали против. И против лужкова. И не только они - в разговор вступило ещё несколько пассажиров.
Не скажу, что прям весь трамвай высказал опасные контрреволюционные вещи, но смысл ясен - просто люд, похоже, всё-таки голосовал против (это если вообще голосовал; были озвучены мнения, так же подтвердившиеся, что на некоторых участках сидели специальные люди)
Потом оказалось, что обе голосовали против. И против лужкова. И не только они - в разговор вступило ещё несколько пассажиров.
Не скажу, что прям весь трамвай высказал опасные контрреволюционные вещи, но смысл ясен - просто люд, похоже, всё-таки голосовал против (это если вообще голосовал; были озвучены мнения, так же подтвердившиеся, что на некоторых участках сидели специальные люди)
С одной стороны, это PETA. С другой стороны - видео всё-таки настоящее (прим.: чувствительным особам смотреть настоятельно не рекомендую, я серьёзно)
Я не лицемер - мясо ем, кожаную одежду ношу. Угрызений совести не испытываю - хотя понимаю при этом, что это мясо и шкура были чьими-то до того, как попали ко мне.
Но это не значит, что вот такие способы добывать мясо и шкуры мне нравятся. Я не понимаю, зачем так издеваться над живыми существами.. если убиваешь - убивай. Но драть шкуру с живого?
Не, с кое-кого я бы и сам содрал. И послушал бы смертные хрипы. Но это совсем другая статья.
Я не лицемер - мясо ем, кожаную одежду ношу. Угрызений совести не испытываю - хотя понимаю при этом, что это мясо и шкура были чьими-то до того, как попали ко мне.
Но это не значит, что вот такие способы добывать мясо и шкуры мне нравятся. Я не понимаю, зачем так издеваться над живыми существами.. если убиваешь - убивай. Но драть шкуру с живого?
Не, с кое-кого я бы и сам содрал. И послушал бы смертные хрипы. Но это совсем другая статья.