Микроконтроллеры | Помогите разобратся с терморегулятором на ds18b20. |
|
---|---|---|
А может просто сделать обе переменные беззнаковыми и работать с неизмененными значениям, полученными с датчика, а уже для вывода на экран приводить к необходимому виду? тогда проблемы точно не будет |
|
|
Ну я заменил код: |
|
|
Сергей К можете описать по подробние что там у меня надо поменять, а то это моя вторая программа. За ранние пасибо. |
|
|
Krik99: Ну я заменил код: а что по поводу этого? не помогает? if((signed)temperature>max) //сравнение или записать так(хотя по сути это то же самое что и в исходном коде), но мало ли, вдруг поможет |
|
|
Вот такой код должен работать ЗЫ. редактировал в блокноте, так что проверить работоспособность не могу |
|
|
или так получше |
|
|
Ой, вру, моя доработка неправильная, там же "отрицательные" температуры больше получаются чем положительные, сравнение будет некорректным тогда сравнение нужно сделать так |
|
|
Krik99: Сергей К можете описать по подробние что там у меня надо поменять |
|
|
Krik99: Сравнение должно работать так, если измеряемая температура больше чем заданная, то должен загорется светодиод, а если менше чем заданная, то светодиод должен погаснуть. Так вот при плюсовой всё нормально, а если там минусовая ,а там плюсовая, или наоборот, или там минусовая и там минусовая то сравнение не работает. Нормальное сравнение, должно работать. PORTB=digits[digit_out[cur_dig]]; ,он перекрывается с индикатором. Может, сравнение-то работает, просто не туда выводится результат? |
|
|
Что то "хозяин топика" затих, интересно что у него там вышло |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |