Перемменные
|
|
mikhail09p |
Дата: Чт, 10.03.2011, 16:32 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
Вот такие чудеса меня вынудили создать новую тему. Есть программа терморегулятора,которая, кстати отлично работает, НО! Вчера увидел одну интересную вещь: девайс отказывается включать нагреватель, если температура ниже 17,7 градусов! Короче - формула Out = (100 * Erore) + K Посмотрите в протеусе, как меняется Out , хотя она Word - от 32000 до минус 32000 ! Но ведь Переменные типа Word могут принимать значения в пределах от 0 до 65535 http://terrarus.ucoz.ru/proton_plus_ide/proton/comands/dim/dim.html Анатолий ошибается в описании Протона? Меняю на DWord - вообще пурга. Что, разные переменные нельзя умножать?..
|
|
|
|
retas |
Дата: Чт, 10.03.2011, 17:38 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Наверное у вас в Протеусе указано показывать эту переменную как Signed Integer а вам надо Unsigned Integer .
|
|
|
|
Matrix252005 |
Дата: Чт, 10.03.2011, 17:43 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Приятного времени суток. Пардон, я ошибся... Буду разбираться дальше....
THE TRUTH IS OUT THERE.
С уважением, Николай.
Сообщение отредактировал
Matrix252005 - Чт, 10.03.2011, 17:48
|
|
|
|
brown |
Дата: Чт, 10.03.2011, 17:59 | Сообщение # 4 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
333
Замечания:
±
На сайте с 18.09.2007
Статус:
Offline
|
terrarus все правильно описал. Может сделать так If Temp_read =< u then Erore = U - Temp_read + 1 else Erore = 0 endif Out = (100 * Erore) + K
Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
|
|
|
|
mikhail09p |
Дата: Чт, 10.03.2011, 18:44 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
Quote (Matrix252005) Приятного времени суток. Пардон, я ошибся... Буду разбираться дальше.... Николай, что это было? brown, мне не нужно сравнение ДО формулы. Сам расчёт неверный происходит. Самое главное, что и в железе тоже подтверждается.
|
|
|
|
ivan_fd |
Дата: Чт, 10.03.2011, 19:18 | Сообщение # 6 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
В какой момент происходит неверный расчет? Смотрел, вроде бы все нормально.
|
|
|
|
mikhail09p |
Дата: Чт, 10.03.2011, 19:38 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
Как нормально? Какое значение Out при температуре 17.6 и меньше? Надо, чтобы было больше или равно 600.
|
|
|
|
ivan_fd |
Дата: Чт, 10.03.2011, 20:28 | Сообщение # 8 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Вот такое: Code (100*327)+200 = 32900
Сообщение отредактировал
ivan_fd - Чт, 10.03.2011, 20:31
|
|
|
|
mikhail09p |
Дата: Чт, 10.03.2011, 22:34 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
А у меня было -32*** ! Что же барахлит? Главное, в железе тоже не работало...
|
|
|
|
ivan_fd |
Дата: Чт, 10.03.2011, 23:16 | Сообщение # 10 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Ну так Вам же retas написал, что нужно поставить Unsigned Integer!!!! В прогу сильно не смотрел, лень разбираться. Опишите кратко алгоритм, легче будет понять.
Сообщение отредактировал
ivan_fd - Чт, 10.03.2011, 23:26
|
|
|
|