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

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

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

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

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

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

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

Закрытая тема
Опции темы
Непрочитано 03.07.2009, 21:49   #21
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Наверно вы.
Реклама:
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 03.07.2009, 22:00   #22
TEHb
Почётный гражданин KAZUS.RU
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию

По умолчанию все переменные signed int, а 9 * 40000 = 36000 что больше максимального значения для signed int 32767 что и приводит к изменению знака.
TEHb вне форума  
Непрочитано 04.07.2009, 00:11   #23
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от TEHb
По умолчанию все переменные signed int
Я подозревал что дело в приеведении типов, и поэтому попробовал с типом LONG, это было в последней строчке моего примера.
Код:
TEMP1= ((long)(9*4000)) / ((long)fclc) ;//грузит в переменую - fff8h вместо 000Ah=10
сейчас попробовал с unsigned long фигня то же получается...
Код:
TEMP1= ((unsigned long)(9*4000)) / ((unsigned long)fclc) ;//грузит в переменую - B975h вместо 000Ah=10
и СПАСИБО ТЕНЬ, за подсказку сейчас попробовал
Код:
TEMP1= ((unsigned int)(9*4000)) / ((unsigned int)fclc) ;//грузит в переменую 000Ah=10
Получилось.

Значит нужно указать такую же размерность констант как и переменная, а больше нельзя?

Ведь для увеличения точности вычислений констант, желательно пользовать UNSIGNED LONG.
Где в Хайтеке это можно указать...?
Кто в курсе.

В IAR AVR наверное по умолчанию LONG или UNSIGNED LONG. таких казусов пока не было.
picavr вне форума  
Непрочитано 04.07.2009, 00:40   #24
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

http://www.remexpert.com/ipb/topic1285.html
http://www.microchip.su/showthread.php?t=6327
urry вне форума  
Непрочитано 04.07.2009, 01:56   #25
TEHb
Почётный гражданин KAZUS.RU
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию

Сообщение от picavr
Код:
TEMP1= ((unsigned long)(9*4000)) / ((unsigned long)fclc) ;//грузит в переменую - B975h вместо 000Ah=10
ну, здесь типы приводятся уже после вычисления, вполне возможно что компилятор не поймёт что имелось в виду.

Лучше написать так:

Код:
TEMP1= (unsigned long)((9*((unsigned long)4000)) / fclc);
тогда уж точно будет считать в unsigned long.
TEHb вне форума  
Непрочитано 04.07.2009, 11:59   #26
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от TEHb
тогда уж точно будет считать в unsigned long.
уже заработало.

И Ещё раз сенк. пригодится.
picavr вне форума  
Непрочитано 06.07.2009, 09:05   #27
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию

Еще пригодится: чтобы привести к unsigned long'у константу, удобно пользоваться такой записью:
Код:
TEMP1= (9UL * 4000UL) / ((unsigned long)fclc)
testerplus вне форума  
Непрочитано 06.07.2009, 12:01   #28
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от testerplus
TEMP1= (9UL * 4000UL) / ((unsigned long)fclc)
Эт я в курсе
picavr вне форума  
Закрытая тема

Закладки


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычисление CRC qaz12345qaz12345 Микроконтроллеры, АЦП, память и т.д 32 23.08.2010 23:55
Вычисление параметров синусоиды по отсчетам, снятых с АЦП _DmZ_ Микроконтроллеры, АЦП, память и т.д 11 08.10.2008 16:23
Странное вычисление температуры DS18S20 nagano Микроконтроллеры, АЦП, память и т.д 0 20.08.2008 08:58
компилятор C Hi-Tech, не работают директивы #asm #endasm alexplev Микроконтроллеры, АЦП, память и т.д 2 26.04.2008 22:47
компилятор fuzzy tech-mp lkz microchip MrDigital Микроконтроллеры, АЦП, память и т.д 0 26.11.2004 14:50


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


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