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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 07.12.2007, 15:04   #1
stri
Прописка
 
Аватар для stri
 
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
stri на пути к лучшему
По умолчанию глюк в Hi-tech-9.61-pro?

Здравствуйте. Столкнулся я с такой проблемой... Есть у меня ф-ция, вычисляющая a/(2^b). Написал я код в С, отладил, все ОК. Потом через какое то время обновил компилятор с 9.50 обычного на 9.61-pro. После этого ф-ция стала выдавать совершенно левые результаты. Вот код:

Код:
koef2=10;
mant2=5;
k2=((float)koef2/((int)1‹‹mant2));
9.50 выдает что к2=0.3125, а в 9.61-pro к2=2.5
Как такое возможно?
Реклама:
stri вне форума  
Непрочитано 07.12.2007, 15:41   #2
user_ushastyj
Временная регистрация
 
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
user_ushastyj на пути к лучшему
По умолчанию

где-то читал, что 9ю61 не любит длинных выражений.
Попробуйте
Код:
mant2=1 ‹‹mant2;
k2=(float)koef2/(int)mant2;
Что тогда ?
__________________
разум когда-нибудь победит... (с)
user_ushastyj вне форума  
Непрочитано 07.12.2007, 16:10   #3
stri
Прописка
 
Аватар для stri
 
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
stri на пути к лучшему
По умолчанию

тогда выдает 1 9.50 выдает 0.3125
stri вне форума  
Непрочитано 07.12.2007, 16:13   #4
user_ushastyj
Временная регистрация
 
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
user_ushastyj на пути к лучшему
По умолчанию

Это что, нормально ???
К вопросу о вреде новых версий...
Нет у меня 9.61 для проверки - я о нем на сахаре плохое читал...
__________________
разум когда-нибудь победит... (с)
user_ushastyj вне форума  
Непрочитано 07.12.2007, 16:17   #5
stri
Прописка
 
Аватар для stri
 
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
stri на пути к лучшему
По умолчанию

на всякий случай, вот ф-ция целиком:
Код:
unsigned int calc(unsigned int ADC,unsigned char koef,unsigned char koef1,unsigned char mant1,unsigned char koef2,unsigned char mant2){
unsigned int digi;
float k1,k2;

k1=((float)koef1/((int)1‹‹mant1));
k2=((float)koef2/((int)1‹‹mant2));

digi=(int)(((float)k1*ADC*ADC)+((float)k2*ADC));

if(koef›128)digi=(int)(((koef*digi)/128)-digi);
else digi=(int)(((koef*digi)/128)+digi);
return digi;
}
stri вне форума  
Непрочитано 07.12.2007, 16:30   #6
user_ushastyj
Временная регистрация
 
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
user_ushastyj на пути к лучшему
По умолчанию

А размер флоат проверяли ? В смысле, в 9.50 и 9.61 ?
__________________
разум когда-нибудь победит... (с)
user_ushastyj вне форума  
Непрочитано 08.12.2007, 23:12   #7
DL36
Вид на жительство
 
Регистрация: 06.10.2006
Сообщений: 329
Сказал спасибо: 4
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
DL36 на пути к лучшему
По умолчанию

У 9.61 PRO есть проблемы, посмотри хотя бы та размер самого компилятора, он в два раза меньше обычного.

Пока его лучше использовать только для проектов с простой математикой, с короткими выражениями. Уж очень он не любит длинных строк.
DL36 вне форума  
Непрочитано 10.12.2007, 08:50   #8
stri
Прописка
 
Аватар для stri
 
Регистрация: 11.07.2006
Адрес: Ru, Nsk
Сообщений: 249
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
stri на пути к лучшему
По умолчанию

user_ushastyj-да, это я проверяю в первую очередь, к тому же вообщем он флоаты нормально считает, пробелма была именно с этой конкретной ф-цией.

Всем спасибо, буду пользовать 9.50, похоже что этот PRO слишком уж профессиональный для меня...
stri вне форума  
Закрытая тема

Закладки


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MPLAB и Hi-Tech 3ann Микроконтроллеры, АЦП, память и т.д 0 14.07.2009 15:17
Размер функций в Hi-Tech C? stri Микроконтроллеры, АЦП, память и т.д 7 29.12.2007 15:49
Правильная задержка в HI-TECH PIC16 vsvetlov Микроконтроллеры, АЦП, память и т.д 1 06.09.2007 13:59
!!! Вопрос по HI-TECH !!! hubble Микроконтроллеры, АЦП, память и т.д 0 05.09.2007 05:53
Ну где же ты - Hi Tech C ??? Prime Микроконтроллеры, АЦП, память и т.д 7 07.09.2005 11:02


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


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