Особенности программирования БВК АМС

Автор Lytnev., 17.11.2011 18:11:06

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Not

ЦитироватьА раньше из-за таких вот тактов и байт, то есть от выбора асма или языка высокого уровня, могла зависеть архитектура всего вычислительного модуля.
А еще раньше вообще стояли кулачковые командоаппараты, и никаких вам проблем со сторожевыми таймерами и языками  :P

Artemkad

Цитировать
Цитировать
Цитировать....
Но учтите, что современный С компилятор соптимизирует код существенно лучше чем вы его вручную напишете на ассемблере.
Здесь не башорг, хватит байки травить :D
Это не байки, это реальность. Глобальный анализ вам в помощь. Человеку свойственно структурировать программы, для улучшения понимания оных и уменьшения ошибок программирования. Компьютер же не ошибается. Почитайти что-нибудь про суперкомпиляцию.

Да, конечно, компьютер компилирует качественнее.... Но код программы в результате получается больше. Это я вам точно гарантирую как человек пишущий при необходимости программы под железо как на Асме так и на Си.
Да, теоретически можно на Си написать так-же компактно (или компактнее), но практически так не получается.
:-\

Unispace

Цитировать
ЦитироватьА раньше из-за таких вот тактов и байт, то есть от выбора асма или языка высокого уровня, могла зависеть архитектура всего вычислительного модуля.
А еще раньше вообще стояли кулачковые командоаппараты, и никаких вам проблем со сторожевыми таймерами и языками  :P

Скажите это Вояджерам и Пионерам. Они летят, ничего не зная о высоком искусстве ООП и очень современном продвинутом подходе к программированию. Это не та техника, где успех всенепременно обеспечивается с помощью cutting edge или около того  :)

Not

Цитировать
ЦитироватьЧеловеку свойственно структурировать программы, для улучшения понимания оных и уменьшения ошибок программирования. Компьютер же не ошибается. Почитайти что-нибудь про суперкомпиляцию.
Да, конечно, компьютер компилирует качественнее.... Но код программы в результате получается больше. Это я вам точно гарантирую как человек пишущий при необходимости программы под железо как на Асме так и на Си.
Да, теоретически можно на Си написать так-же компактно (или компактнее), но практически так не получается.
Вы таки пропустили совет почитать про суперкомпиляцию, а зря  :wink:

Not

Цитировать
Цитировать
ЦитироватьА раньше из-за таких вот тактов и байт, то есть от выбора асма или языка высокого уровня, могла зависеть архитектура всего вычислительного модуля.
А еще раньше вообще стояли кулачковые командоаппараты, и никаких вам проблем со сторожевыми таймерами и языками  :P

Скажите это Вояджерам и Пионерам. Они летят, ничего не зная о высоком искусстве ООП и очень современном продвинутом подходе к программированию. Это не та техника, где успех всенепременно обеспечивается с помощью cutting edge или около того  :)
А где я предлагал ООП? ООП действительно не имеет  отношения к данному вопросу.

Artemkad

Цитировать
ЦитироватьВ случаях с новой платформой для которой еще нет написанных драйверов цена "грамотно использовать функциональность ОС" стремительно направляется в корзину.
Глубоко уважаю создателей "новых платформ", норовящих все написать с нуля, включая драйверы работы со стандартной шиной и категорически отвергающих драйверы, уже написанные для соответствующих ОСРВ производителями приборов, даже самых новейших.
"драйверы стандартной шины" обычно представлены в виде готовых (или почти готовых) библиотек. Не стоит только ради уже готовых драйверов запускать на платформе ОС.
ЗЫ. Кстати а еще часто наличие библиотек в исходниках спасает при поиске там ошибок... Т.к. чем больше я на них смотрю, тем больше ощущение, что эти драйвера пишут студенты для зачетов :( .
:-\

Unispace

ЦитироватьА где я предлагал ООП? ООП действительно не имеет  отношения к данному вопросу.

Тонкие различия компиляции и эффективности ОС тоже вряд ли имеют отношение. Я уверен, что миссию ФГ можно выполнить, имея в распоряжении цифровую электронику даже тридцатилетней давности. Главное, чтобы все было сделано грамотно и аккуратно, с вниманием к мелочам, и не на авось. Что в ПО, что в баках с горючим.

KapYar

ЦитироватьА давайте проведем эксперимент - есть у вас приличный частотомер под рукой? Померяем нестабильности и сравним  :D
Вот такой результат выдает у нас "китаец" UT81B:
Народу не нужны нездоровые сенсации. Народу нужны здоровые сенсации.

TAU

Цитировать
ЦитироватьА программисты в Энергии, Лавочкина, Красноярске ОС РВ, которые им предлагали как огня боятся.
Вы с программистами в Энергии давно общались? БВС РС МКС рабрает под управлением ОС WxVorks.
VxWorks

belov2018

Цитировать
ЦитироватьА программисты в Энергии, Лавочкина, Красноярске ОС РВ, которые им предлагали как огня боятся.
Вы с программистами в Энергии давно общались? БВС РС МКС рабрает под управлением ОС WxVorks.

А это относится к необитаемым объектам

Not

ЦитироватьГлавное, чтобы все было сделано грамотно и аккуратно, с вниманием к мелочам, и не на авось. Что в ПО, что в баках с горючим.
Вы знакомы с термином "тавтология" ?  :D

zyxman

Интересный вопрос, а как самой малой кровью можно считать частоту электросети компьютером?
В смысле так чтобы всё из хлама сделать, и паять поменьше и не слишком процессор загружать? :D

Ну вот допустим подключить 220В не проблема - есть неиспользуемый трансформатор с выходным напряжением около 6В - поделить его несложно - получим скажем 5В ~50Гц - если это пустить прямо например на ножку последовательного порта - вобщем неплохо но нужно кем-то следить за этими 50Гц (проверять их хотя-бы 200раз в секунду) и это уже будет заметная загрузка процессора.
Вообще у меня валялся комплект логики для Синклера - там есть например счетчики - может соорудить делитель частоты?
"Демократия, это когда царь умный, а также добрый и честный по отношению к своим холопам".
--
Удача - подготовленный успех!

qlab

ЦитироватьИнтересный вопрос, а как самой малой кровью можно считать частоту электросети компьютером?
Сделать делитель и на LINE IN звуковухи

zyxman

Уточняю вопрос: я хочу непрерывно мерять частоту сети, чтобы компьютер писал лог частоты но при этом не занимались существенно ресурсы. Например Line In занимать не могу, тк часто пользуюсь скайпом.

Вот пока возникла интересная идея: сделать чтобы по переходам через ноль запускался источник одного импульса, скажем 20мкс (на 555 это легко сделать), сам этот импульс подать в соответствующей полярности на вход данных rs232, а на порту выставить скорость 57600 - таким образом получится, что будем с частотой электросети получать на порту мусорные посылки, и просто посчитав сколько мусора пришло за какой-то период узнаем частоту - загрузка процессора будет вообще мизерная, rs232 можно спаять из дата-кабеля для мобилки.
"Демократия, это когда царь умный, а также добрый и честный по отношению к своим холопам".
--
Удача - подготовленный успех!

Not

Цитироватья хочу непрерывно мерять частоту сети,
...
часто пользуюсь скайпом.
...
Вот пока возникла интересная идея: сделать чтобы по переходам через ноль запускался источник одного импульса, скажем 20мкс (на 555 это легко сделать), сам этот импульс подать в соответствующей полярности на вход данных rs232, а на порту выставить скорость 57600 - таким образом получится, что будем с частотой электросети получать на порту мусорные посылки, и просто посчитав сколько мусора пришло за какой-то период узнаем частоту - загрузка процессора будет вообще мизерная, rs232 можно спаять из дата-кабеля для мобилки.
Исходя из вышеприведенной информации у вас или Windows, или Linux.

Ничего не получится, это не системы реального времени, а значит импульс вы будет получать с погрешностью минимум +/- одна-две миллисекунды, что составит 5-10% ошибки для 50Гц.

Предлагаю более надежный вариант: однокристалка со встроенным таймером, триггером Шмитта и контроллером последовательного порта, а также ОЗУ, ЭППЗУ или флэш-память и портом для программирования всего этого хозяйства. Ну например PIC18F46K20. Один корпус, пара резисторов на делитель, конденсатор на фильтрацию питания, разъем программирования и три вольта питания. Ну или пятивольтовый кристалл можно поискать. Программируете таймер, садите прерывание на триггер Шмитта, считаете импульсы и отсылаете через последовательный порт.

Дем

ЦитироватьНичего не получится, это не системы реального времени, а значит импульс вы будет получать с погрешностью минимум +/- одна-две миллисекунды, что составит 5-10% ошибки для 50Гц.
Это не так страшно, меряем 1000 импульсов, усредняем...

А у меня например монитор UPS частоту выдаёт, сейчас 49.9Гц.
Летать в космос необходимо. Жить - не необходимо.

KapYar

ЦитироватьПредлагаю более надежный вариант: однокристалка со встроенным таймером, триггером Шмитта и контроллером последовательного порта, а также ОЗУ, ЭППЗУ или флэш-память и портом для программирования всего этого хозяйства. Ну например PIC18F46K20. Один корпус, пара резисторов на делитель, конденсатор на фильтрацию питания, разъем программирования и три вольта питания. Ну или пятивольтовый кристалл можно поискать. Программируете таймер, садите прерывание на триггер Шмитта, считаете импульсы и отсылаете через последовательный порт.
Здесь нигде не упоминается гальваническая развязка. Без нее в лучшем случае убьется компьютер, а в худшем - и пользователь.
Народу не нужны нездоровые сенсации. Народу нужны здоровые сенсации.

Not

Цитировать
ЦитироватьНичего не получится, это не системы реального времени, а значит импульс вы будет получать с погрешностью минимум +/- одна-две миллисекунды, что составит 5-10% ошибки для 50Гц.
Это не так страшно, меряем 1000 импульсов, усредняем...

А у меня например монитор UPS частоту выдаёт, сейчас 49.9Гц.
Ну дык, у монитора UPS как раз однокристалка этим и занимается. А усреднением мы мало что получим - скорее поймаем периодичность загрузки Windows, поскольку RS232 не гарантирует величину задержки - там есть понятие ожидания приема.

У меня тоже простейший измеритель выдает 59.9 - 60.0. Но речь то идет о более точном измерении.

Not

ЦитироватьЗдесь нигде не упоминается гальваническая развязка. Без нее в лучшем случае убьется компьютер, а в худшем - и пользователь.
Оптоэлектронная развязка должна присутствовать на всех внешних портах ПК. Хотя конечно неплохо бы и измеритель прикрыть.

KapYar

ЦитироватьОптоэлектронная развязка должна присутствовать на всех внешних портах ПК.
Разве что только в случае промышленных ПК. В бытовых персоналках развязка (трансформаторная) есть только на сетевом интерфейсе, ибо положено по стандарту. Остальные порты гальванически не развязаны.
Народу не нужны нездоровые сенсации. Народу нужны здоровые сенсации.