Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Отвлекитесь, эмбеддеры! Отвлеченные темы - обсудить проблемы тепловой смерти вселенной, или просто пиво. Этот раздел - для отдыха.

 
Опции темы
Непрочитано 20.11.2017, 21:41  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
А еще эта строка в цикле прерывания с периодом в 1 мс будет отсчитывать "1 раз 100 секунд" только если оператор выставит уставку периода регулирования EE_PID_TIME в значение "100". Но на случай такого глупого оператора программа не даст ему это сделать, ибо период регулирования, исходя из характеристик оборудования (конкретно - определяемой объемом бака и мощностью нагреватля скорости нагрева) можно задать от 1 до 10 сек. Соответственно и значение дданной переменной EE_PID_TIME лежит в этом диапазоне.
Ну если EE_PID_TIME лежит в диапазоне от 1 до 10 сек, то чего же ты ее умножаешь на 1000?
ALEGYR вне форума  
Непрочитано 20.11.2017, 21:51  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от ALEGYR Посмотреть сообщение
Ну если EE_PID_TIME лежит в диапазоне от 1 до 10 сек, то чего же ты ее умножаешь на 1000?
Чтобы получить значение в миллисекундах. От 1000 до 10000 миллисекунд. Потому что это значение будет использовано в участке кода, выполняющегося раз в 1 миллисекунду, для того, чтобы определенная часть этого участка - расчет нового значения управляющего сигнала ПИД - выполнялась с заданным в секундах в EE_PID_TIME периодом. А остальные участки продолжали выполняться один раз в миллисекунду, как требуется для их работы.

Последний раз редактировалось AR_Favorit; 20.11.2017 в 21:54.
AR_Favorit вне форума  
Непрочитано 20.11.2017, 21:57  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
Чтобы получить значение в миллисекундах.
То есть ты EE_PID_TIME , которая, по твоим словам, лежит в диапазоне от 1 до 10 сек, умножаешь на 1000, чтобы получить значение в миллисекундах?
Мне всегда казалось когда секунды умножают на 1000, то получают КИЛОсекунды!
ALEGYR вне форума  
Непрочитано 20.11.2017, 22:01  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от ALEGYR Посмотреть сообщение
То есть ты EE_PID_TIME , которая, по твоим словам, лежит в диапазоне от 1 до 10 сек, умножаешь на 1000, чтобы получить значение в миллисекундах?
Мне всегда казалось когда секунды умножают на 1000, то получают КИЛОсекунды!
Вообще-то "кило" получают как раз когда делят значение на 1000.
1000 грамм = 1 килограмм.
1000 метров = 1 километр

1 грамм = 1000 миллиграмм.
1 метр = 1000 миллиметров.

1000 миллисекунд = 1 секунда.

Или нет? Я в свою очередь всю жизнь был уверен, что 1000 миллисекунд - это одна секунда. Кто-то из нас прожил жизнь неправильно?

Задача для первого класса. В 1 секунде 1000 миллисекунд. Как узнать, сколько миллисекунд в 3 секундах?


ЗЫ
Сообщение от AR_Favorit Посмотреть сообщение
Это снова будет весело
Сообщение от laser532 Посмотреть сообщение
зачем Вам эта клоунада?
Ты пытаешься доказать, что код (весьма примитивный, и совершенно точно уже работающий в устройстве) - работать не может? Или пытаешься разобраться, как он работает, несмотря на твою уверенность, что он не работает (ну в смысле не реализует PID-регулирование температуры)? Я бы порекомендовал второе.

Последний раз редактировалось AR_Favorit; 20.11.2017 в 22:12.
AR_Favorit вне форума  
Непрочитано 20.11.2017, 22:10  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
Я в свою очередь свю жизнь был уверен, что 1000 миллисекунд - это одна секунда.
Правильно! А вот когда 1 или 10 секунд умножают на 1000, то получают 1000 или 10 000 секунд! Что можно вполне справедливо написать 1 или 10 КИЛОсекунд, чтобы постоянно не писать три дополнительных нуля!
ALEGYR вне форума  
Непрочитано 20.11.2017, 22:20  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от ALEGYR Посмотреть сообщение
Правильно! А вот когда 1 или 10 секунд умножают на 1000, то получают 1000 или 10 000 секунд! Что можно вполне справедливо написать 1 или 10 КИЛОсекунд, чтобы постоянно не писать три дополнительных нуля!
Ты путаешь пересчет величины из одной единицы измерения в другую (что происходит в рассматриваемой строке) - с присвоением величине другого значения с последующим таким же пересчетом в другую единицу измерения.

Поступим проще.

1) сколько миллисекунд в трех секундах?
2) как ты это посчитал?

Последний раз редактировалось AR_Favorit; 20.11.2017 в 22:35.
AR_Favorit вне форума  
Непрочитано 20.11.2017, 22:42  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
Ты пытаешься доказать, что код (весьма примитивный, и совершенно точно уже работающий в устройстве) - работать не может?
Я хочу понять ЗАЧЕМ ты, в первой строке своего кода, умножаешь введенную оператором константу EE_PID_TIME на 1000, и если она у тебя лежит в диапазоне от 1 до 10 секунд? Неужели нельзя сразу ввести цифру от 1000 до 10 000, обозначающее миллисекунды, и не напрягать ни свой код программы, ни сам контроллер лишними операциями умножения?
У тебя же значение EE_PID_TIME имеет 16 разрядов, и в них спокойно влезет любое знаковое число в диапазоне от -32 768 до 32 767, или беззнаковое в диапазоне от 0 до 65535!
ALEGYR вне форума  
Непрочитано 20.11.2017, 23:02  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от ALEGYR Посмотреть сообщение
Я хочу понять ЗАЧЕМ ты, в первой строке своего кода, умножаешь введенную оператором константу EE_PID_TIME на 1000, и если она у тебя лежит в диапазоне от 1 до 10 секунд? Неужели нельзя сразу ввести цифру от 1000 до 10 000, обозначающее миллисекунды, и не напрягать ни свой код программы, ни сам контроллер лишними операциями умножения?
У тебя же значение EE_PID_TIME имеет 16 разрядов, и в них спокойно влезет любое знаковое число в диапазоне от -32 768 до 32 767, или беззнаковое в диапазоне от 0 до 65535!
Исторически так сложилось. Изначально планировалось жестко задать период регулирования, и на месте EE_PID_TIME был токен CONST_PID_TIME, определенный как

Код:
#define CONST_PID_TIME 1 //период регулирования в секундах
для того, чтобы подобрать его при отладке под параметры установки заказчика.

И умножение никак не напрягало ни контроллер, так как выполнялось на этапе компиляции, и в машинном коде умножения не было, а было уже посчитанное число в миллисекундах, ни тем более код программы, где с этим умножением - наглядней (для меня - а больше в исходники прошивки устройства никто и не должен смотреть).

Когда в процессе уточнения требований заказчика выяснилось, что параметры подогревамых баков для топлива могут отличаться на порядок - было решено сделать эту уставку изменяемой оператором, настраивающим установку. И CONST_PID_TIME превратилось в EE_PID_TIME. А данный участок кода остался неизменным, так как вычисление этих умножений всё равно производится за один такт процессора, и жертвовать наглядностью ради экономии наносекунд, когда процессор большую часть времени всё равно проводит в бездействии, не имело смысла. Если бы накладные расходы на эту наглядность были выше - как, например, высоки они у ардуино на базе атмеги на оперирование числами с плавающей точкой - я бы, разумеется, пожертвовал ей.

Так что этим вопросом не парься. Просто некоторая неоптимальность кода, да. То, что ты пытаешься разобрать - работа алгоритма PID - от нее не зависит никак.

Последний раз редактировалось AR_Favorit; 20.11.2017 в 23:06.
AR_Favorit вне форума  
Непрочитано 20.11.2017, 23:25  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
И умножение никак не напрягало ни контроллер, так как выполнялось на этапе компиляции, и в машинном коде умножения не было, а было уже посчитанное число в миллисекундах, ни тем более код программы, где с этим умножением - наглядней (для меня - а больше в исходники прошивки устройства никто и не должен смотреть).
Так это больше не контроллер напрягает (ведь ты контроллеры всегда выбираешь с запасом), это напрягает нагреваемый бачок с маслом, и твоего заказчика!
Бачок думает, что его контролируют максимум каждые 10 секунд, а оказывается о нем забывают не меньше чем на 100 секунд!
Твоего заказчика напрягает то что его бачок с маслом нагревается очень капризно, и ему приходится нанимать крутого оператора, за приличные деньги, чтобы он один раз нажал на кнопку пуск, и охранял настройки пида, которые вы ему оставляете после ваших перенастроек.
ALEGYR вне форума  
Непрочитано 20.11.2017, 23:30  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от ALEGYR Посмотреть сообщение
Так это больше не контроллер напрягает (ведь ты контроллеры всегда выбираешь с запасом), это напрягает нагреваемый бачок с маслом, и твоего заказчика!
Сильно ошибаешься.

Сообщение от ALEGYR Посмотреть сообщение
Бачок думает, что его контролируют максимум каждые 10 секунд, а оказывается о нем забывают не меньше чем на 100 секунд!
Это снова выдумка. Я дважды уже тебе написал, что уставка EE_PID_TIME не может быть больше 10 секунд. Откуда ты берешь 100 секунд-то? Пальцем покажи.

Сообщение от ALEGYR Посмотреть сообщение
Твоего заказчика напрягает то что его бачок с маслом нагревается очень капризно, и ему приходится нанимать крутого оператора, за приличные деньги, чтобы он один раз нажал на кнопку пуск, и охранял настройки пида, которые вы ему оставляете после ваших перенастроек.
Не бредь, пожалуйста, иначе мы просто вернемся к старой манере "ведения дискуссии". Свои странные предположения оставь при себе, и не путай мои работающие конструкции со своими воображаемыми. Есть код, говори о нем.

Последний раз редактировалось AR_Favorit; 20.11.2017 в 23:33.
AR_Favorit вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Wiznet W7100. Общие вопросы R_N Микроконтроллеры, АЦП, память и т.д 7 06.06.2012 00:33
PCAD - вопросы и ответы avr123-nm-ru Proteus, KiCAD и другие ECAD 7 27.01.2011 21:15
Система измерения температуры (на AD8495), вопросы по схеме и реализации spartakchamp Измерительное оборудование 2 15.11.2010 22:04


Часовой пояс GMT +4, время: 21:56.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot