AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
18.10.2015, 14:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,050
Сказал спасибо: 3,041
Сказали Спасибо 3,210 раз(а) в 2,180 сообщении(ях)
|
Re: MAX6675 + ATmega32A
Сообщение от STM32F0
|
Жесть! Никаких противоречий? Может ошибка где?
temp = value ›› 4;
|
Да, жесть. Правильно так:
temp = value ›› 2;
|
|
|
|
18.10.2015, 15:46
|
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: MAX6675 + ATmega32A
Сообщение от STM32F0
|
Дура Студия и не такие какашки заглатывает. Можешь поверить, она честно умножит на 0,25 и результат будет верным.
|
Всем привет.
А чему тут удивляться? Это же С++.
В данном случае здесь произойдет неявное преобразование переменной в тип double.
|
|
|
|
18.10.2015, 16:42
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: MAX6675 + ATmega32A
Сообщение от МВА
|
А чему тут удивляться? Это же С++.
|
Где? И что должно измениться?
Сообщение от МВА
|
В данном случае здесь произойдет неявное преобразование переменной в тип double.
|
Это из области "мне повезёт!", но быстрее - "играйте ещё!". Неявный тип - int, если не изменяет память.
Если temp - float, то в случае Студии - "мне повезло!", если short - "играйте ещё!". Судя по строчке
sprintf(text,"%0.8d", temp);
temp явно не float. Но по любому - нужно явное приведение типа, во избежание.
Последний раз редактировалось STM32F0; 18.10.2015 в 17:01.
|
|
|
|
18.10.2015, 16:58
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: MAX6675 + ATmega32A
Сообщение от МВА
|
преобразование переменной в тип double.
|
И да! Насколько помню, в Студии float и double одно и тоже, чтобы губу не раскатывали.
|
|
|
|
18.10.2015, 19:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Re: MAX6675 + ATmega32A
Сообщение от STM32F0
|
Где? И что должно измениться?
....
temp явно не float. Но по любому - нужно явное приведение типа, во избежание.
|
//float temp = 0; - ТС закомметировал строку, но там и так всё яcно. Явное приведение типа никому не нужно, если кодер знает, что он делает.
|
|
|
|
19.10.2015, 00:48
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: MAX6675 + ATmega32A
Знает что?
|
|
|
|
19.10.2015, 07:22
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,087
Сказал спасибо: 2,565
Сказали Спасибо 11,899 раз(а) в 5,972 сообщении(ях)
|
Re: MAX6675 + ATmega32A
Ara41, жизнь ничему не учит? Плавающая - только явно. Иначе компиляторы норовят все свести к хренам, ой, к int-ам.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:26.
|
|