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

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

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

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

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

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

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

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

Радикально - все во float считать.

Иначе - работать - т.е. продумавать порядок операций чтобы числа гарантровано не выходили за диапазоны.
Реклама:
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 29.06.2009, 13:18   #12
SUI
Частый гость
 
Регистрация: 28.06.2006
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
SUI на пути к лучшему
По умолчанию

Если время выполнения мат. операции не критично то да – соглашусь с avr123-nm-ru, иначе вот так:
U_Val = (unsigned long)N_ADC*N_ADC*N_ADC*489+(unsigned long)N_ADC*N_ADC*500.
SUI вне форума  
Непрочитано 29.06.2009, 14:09   #13
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 вне форума  
Непрочитано 29.06.2009, 14:15   #14
SUI
Частый гость
 
Регистрация: 28.06.2006
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
SUI на пути к лучшему
По умолчанию

Естественно согласен, уважаемый avr123-nm-ru!
SUI вне форума  
Непрочитано 29.06.2009, 14:23   #15
3ann
Временная регистрация
 
Регистрация: 21.11.2006
Сообщений: 96
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
3ann на пути к лучшему
По умолчанию

Спасибо, т.е. все решается "прямо в лоб". Но, наверное, это все ест немеряно памяти? Мне нужно все это на для линеаризации на PIC12F675 входной характеристики датчика. Попробую смоделировать все это в ПРОТЕУСе.
3ann вне форума  
Непрочитано 29.06.2009, 16:50   #16
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Памяти ест много... Если от double - float можно уйти - тем более на таком мк, где ее и так мало, то нужно уходить.
urry вне форума  
Непрочитано 30.06.2009, 14:04   #17
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от avr123-nm-ru
Радикально - все во float считать.Иначе - работать - т.е. продумавать порядок операций чтобы числа гарантровано не выходили за диапазоны.
А если резутьтат 10 бит умножать на 97655 например: 1024 * 97655 = 99 998 720 +500 = 99 999 220 = (5F5DDF4hex).
(коэфициэнт 97655,2734375 = 99 999 000 / 1024)
А потом преобразовать результат в BCD и отбросить младшие 3 знака (это дробная часть)
ИЛИ
резутьтат 10 бит умножать на 976552 например: 1024 * 976552 = 99 998 9248 +5000 = 99 999 4248 (3B9AB388hex).
(коэфициэнт 976552,734375 = 99 999 0000 / 1024)
А потом преобразовать результат в BCD и отбросить младшие 4 знака (это дробная часть)

Тогда не будет использоватся FLOAT а только LONG. Обычно подобное вытворяю на АСМ, что бы не связыватся с FLOAT.

КСТАТИ. Есть HiTech std 9.60PL1 + таблетка.
А у кого есть на HiTech std 9.60PL3 таблетка.
Кто их юзал, есть ли глюки?
picavr вне форума  
Непрочитано 01.07.2009, 11:26   #18
3ann
Временная регистрация
 
Регистрация: 21.11.2006
Сообщений: 96
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
3ann на пути к лучшему
По умолчанию

Вот недавно urry ссылку давал на HiTech std 9.60PL3
https://kazus.ru/url.php?url=http://...s&showfile=153
Я скачал,но еще не устанавливал. Если информация по глюкам будет-делитесь.
Ссылка на HiTech std 9.60PL3 мной приведена не та. Вот верная
http://www.remexpert.com/ipb/...omod...s&showfile=153
3ann вне форума  
Непрочитано 01.07.2009, 14:17   #19
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от 3ann
Я скачал,но еще не устанавливал. Если информация по глюкам будет-делитесь.
HiTech std 9.60PL3 - я с сайта хай тека скачал... таблетки нет?
у мну PL1 и таблетка есть...
picavr вне форума  
Непрочитано 03.07.2009, 21:46   #20
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от 3ann
Если информация по глюкам будет-делитесь.
std 9.60PL1
Я ту начал разбиратся с задержками, хотел свою наваять, что то мне delay.c и .h не понравились.. и встретилс я с такой фигнёй..

Код:
unsigned int TEMP1;
#define    fclc    3500 //Crystal frequency in кHz

	TEMP1=(9*4000);//как положено грузит в переменую - 8CA0h=36000

	TEMP1=fclc;//как положено грузит в переменую - 0DACh=3500

	TEMP1=36000/3500;//как положено грузит в переменую - 000Ah=10

	TEMP1=36000/fclc;//как положено грузит в переменую - 000Ah=10

	TEMP1=(9*4000)/3500;//грузит в переменую - fff8h вместо 000Ah=10

	TEMP1=((long)(9*4000))/fclc;//грузит в переменую - fff8h= вместо 000Ah=10

	TEMP1=((long)(9*4000))/((long)fclc);//грузит в переменую - fff8h вместо 000Ah=10
кто подскажет.. кто тупит.. я или компилятор?
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:22.


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