Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
29.06.2009, 12:34
|
#11
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Радикально - все во float считать.
Иначе - работать - т.е. продумавать порядок операций чтобы числа гарантровано не выходили за диапазоны.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
29.06.2009, 13:18
|
#12
|
Частый гость
Регистрация: 28.06.2006
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Если время выполнения мат. операции не критично то да – соглашусь с avr123-nm-ru, иначе вот так:
U_Val = (unsigned long)N_ADC*N_ADC*N_ADC*489+(unsigned long)N_ADC*N_ADC*500.
|
|
|
|
29.06.2009, 14:09
|
#13
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Ну мой посто из ДВУХ предложений. Со вторым то вы тоже наверно согласны.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
29.06.2009, 14:15
|
#14
|
Частый гость
Регистрация: 28.06.2006
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Естественно согласен, уважаемый avr123-nm-ru!
|
|
|
|
29.06.2009, 14:23
|
#15
|
Временная регистрация
Регистрация: 21.11.2006
Сообщений: 96
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Спасибо, т.е. все решается "прямо в лоб". Но, наверное, это все ест немеряно памяти? Мне нужно все это на для линеаризации на PIC12F675 входной характеристики датчика. Попробую смоделировать все это в ПРОТЕУСе.
|
|
|
|
29.06.2009, 16:50
|
#16
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Памяти ест много... Если от double - float можно уйти - тем более на таком мк, где ее и так мало, то нужно уходить.
|
|
|
|
30.06.2009, 14:04
|
#17
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от 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 таблетка.
Кто их юзал, есть ли глюки?
|
|
|
|
01.07.2009, 14:17
|
#19
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от 3ann
|
Я скачал,но еще не устанавливал. Если информация по глюкам будет-делитесь.
|
HiTech std 9.60PL3 - я с сайта хай тека скачал... таблетки нет?
у мну PL1 и таблетка есть...
|
|
|
|
03.07.2009, 21:46
|
#20
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от 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 |
кто подскажет.. кто тупит.. я или компилятор?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
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, время: 03:24.
|
|