Jump to content

    

Xenia

Модератор FTP
  • Content Count

    4548
  • Joined

Community Reputation

0 Обычный

About Xenia

  • Rank
    Гуру
  • Birthday June 2

Контакты

  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

11691 profile views
  1. Если я поступлю, как вы советуете, то gnuplot нарисует график в своем собственном окне, а не в окне моей программы. Тогда как я бы хотела функцию plot() "приватизировать", чтобы она рисовала графики с моем окне (на моей канве).
  2. Так он именно встроен в octave, а не просто вызывается, как dll-модуль, из gnuplot. Обычно ситуация такова, что чужие dll, как правило, вообще не вызываются :). Причиной тому служит то, что чужой программный продукт обычно содержит некий свой "фундамент", тогда как в dll вынесены редко или периодически используемые функции. Однако такие "удаленные функции" для своей работы все равно требуют наличия этого фундамента, а зачастую и его "инициации". Исключение составляют dll-модули в составе библиотек, да и то процедура инициации чаще всего оказывается неизбежной. В целом же проблема сводится к тому, что чужие/внешние функции не являются отдельными "кубиками", которые можно легко присоединять к своей программе, а связаны между собой неразрывными связями. Например, я вызываю одну функция, не ведая, что она неавтономна. Тогда как она при своем выполнении вызывает, скажем, пару других функций из того же ушата :), а те, в свою очередь, вызовут еще какие-то функции, а те свои, и т.д. до цепной реакции. Конечно, может случиться и так, что рост этих "метастаз" где-то остановится, но чаще случается так, что "метастазы" дорастают до фундамента, а тот, "возбудившись", грузит в память оптом все функции, какие на нем произрастают. Из-за этого выходит, что для того, чтобы воспользоваться всего лишь одной единственной функцией из чужого продукта, приходится инсталлировать его целиком, а то и предварительно запускать его в виде параллельно работающего приложения. С течением времени программные продуты становятся всё жирнее, превращаясь в отдельную экосистему, из которой снаружи ничего полезного не выудишь. А межпрограммный интерфейс мало кто из них официально поддерживает, а если неофициально, то и не догадаешься как. Но даже, если такой интерфейс возможен, то его использование портит реноме своей программы, когда она столь откровенно паразитирует на чужом продукте, а тем более нелицензированном.
  3. На Borland C/C++ 6.0 пока рисую (с помощью TeeChart), а на MSVC приходится без рисунков обходиться. Впрочем, в одном из проектов рисовала на OWLNext (это дальнейшее развитие OWL из Borland C/C++ 5.02), но там довольно примитивные функции - готовых графиков и диаграмм нет. Отсюда и моё любопытство к этой теме - вдруг кто-то уже нашел достойную замену Билдеру.
  4. У меня Windows 7 SP1, но Framework 3.5 по умолчанию на ней не установлен. Кроме того, я совершенно не желаю привязываться к Фреймворку, а тем более переходить на другой язык ради графика.
  5. Так то C#. С поддержкой гигантского Фреймворка можно не то что графики, а и вприсядку плясать :). Такой дорогой ценой график мне не нужен.
  6. Родной билдеровский teechart немного кривоват, но поверх него на тот же Buillder легко ставится более богатая версия teechart'a - 8-ая или выше (у меня 8.03, на которую есть исходники). В реальном времени рисовать графики teechart не годится, т.к. он при каждом обновлении станет перерисовывать всю кривую заново, а то и вместе с осями :). А вот OpenGL - ужасная гадость :), т.к. рисует медленно из-за слишком сложной реализации, а интерефейс крайне неудобный. Тогда как я речь веду не о примитивах, а о законченных решениях, примером которого может быть функция plot() в Matlab. Поиметь бы такую же функцию в MSVC, и больше ничего для счастья не надо :).
  7. Чтобы со всей памятью работать (у меня 32 ГБ). Матрицы большого размера нужны, в 4 ГБ памяти не помещаются.
  8. VS2013 - нормальная среда, не монстроидальная. Да и VS2015 еще терпимая. Тогда как VS2005 и VS2008 - старьё голимое :) , 64-разрядные приложения генерировать неспособное. Но вопрос у меня другой - как под VS разные графики и диаграммы рисовать, которые на Bulder 6.0 делались в пол тычка мышкой? Т.е. всё, что под Билдером делает teechart? Или вы всё GUI на MFC пишите?
  9. Бывает по-разному. Но чаще как правило - CS активен весь передаваемый по SPI кадр. Так это же очевидно! А между кадрами?
  10. Нет, не оговорка. CS тактирует байты, а CLCK - биты. Но можно было бы и к битам счетчик привязать, т.к. их число четко привязано к байтам в отношении 8:1. Я же хотела байты таймером считать, а не биты. На STM32 нельзя - его таймеры логические события не воспринимают - только внешние сигналы. А вот на ATxmega такое можно было бы сделать.
  11. Если обмен данными по SPI организован вами с тактированием слейва по ChipSelect (а иначе случайный пропуск единственного бита приведет к смещению форматного окна), то вы можете эту же линию CS завести на счетный вход одного из таймеров, запрограммировав его считать до 5-ти (ARR=5) и выдавать меандр со скважностью 1:4 (CCR1=4). Тогда на выходе этого таймера в течение 4-х байт будет низкий уровень, а на 5-ом высокий. Это у меня идея такая, а конкретно с нужными вам тактами разбирайтесь сами.
  12. Проще всего это делается через SPI-интерфейс, способный сформировать командную посылку для LC7821 в нужном ей формате. Правда SPI посылает 8 бит (байт), а LC7821 принимает только 4 бита (тетраду), но это не страшно - важно лишь, чтобы последние передаваемые 4 бита были нужными, а лишние проскочат мимо (во входной буфер LC7821 помещаются только 4 последних бита, вытесняя из него все предшествующие). В вашем коде мне разбираться бессмысленно, поскольку схему присоединения LC7821 к ATmega8 вы не публикуете. Но подозреваю, что ваша программа не работает из-за того, что вы лишь добавляете новые биты командой |=, но нигде их не стираете. Предположу, что вместо операции |= где-то должны быть обычные операции присваивания =.
  13. GD32F103

    TTL в смысле UART, т.е. напрямую к компьютеру его не подключишь.
  14. GD32F103

    Скажите кто-нибудь, какой у GD32F103 загрузчик? На TTL или на USB? А то до сих пор вижу такую безрадостную картину, что USB-loader бывает только у STM32F4 (F2 и F3 не испытывала, т.к. их у меня их нет) и выше, а на STM32F1 только TTL-loader. Тогда как хотелось бы, чтобы и на F1 тоже был USB-loader. И вообще, можно ли USB-loader прошить F1? В смысле, где взять его бинарник, если таковой для F1 существует?