Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
23.10.2007, 09:05
|
|
Частый гость
Регистрация: 25.06.2007
Сообщений: 21
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
День добрый всем. Дело в том что нет ничего сложного в том чтобы сделать 32 битное вычитание или сложение, просто учитывая бит зайома, или деление, путём вычитания со здвигом, или например уножения 32 на 32 путём перемножения в стлбик... но к этому просто нужно дайти. Есть один сайтик http://massmind.org/techref/microchip/math/basic.htm . Тут всё есть! Если кому инересно можете разобраться как это работает, а кому не очень... просто копируй и вставляй ))
|
|
|
|
23.10.2007, 13:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.05.2006
Адрес: Владимир
Сообщений: 2,804
Сказал спасибо: 3,005
Сказали Спасибо 4,229 раз(а) в 1,191 сообщении(ях)
|
Re: 32-разрядные числа в 8-битном PIC
Не тот формат чисел, там целые числа.
Сообщение от kotlyara
|
http://massmind.org/techref/microchip/math/basic.htm . Тут всё есть!
|
Уф.... устал перелопачивать ссылки. Всё не то!
|
|
|
|
23.10.2007, 17:18
|
|
Прописка
Регистрация: 09.08.2006
Сообщений: 198
Сказал спасибо: 14
Сказали Спасибо 27 раз(а) в 20 сообщении(ях)
|
Подпрограммы сложения, вычитания, умножения и деления
32битовых чисел (8бит EXP, 24бит мантисса). Удели внимание подпрограмме деления!
Прикрепленный файл: 2669834.rar
|
|
|
|
24.10.2007, 09:06
|
|
Частый гость
Регистрация: 25.06.2007
Сообщений: 21
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: 32-разрядные числа в 8-битном PIC
Ууу брат я понял с какой проблемой ты столкнулся, с проблемой дробных числе. Запомни, они ничем не отличаются от обычных, запятная мнимая, просто нужно запомнить пару простых правил.
При сложении двух чисел формата Q.N (где Q - количество бит до запятой, т.е. целая часть, и N - биты после запятой, которые имеют такой вес. Первый бит после запятой равен 1*2^-1, втрой 1*2^-2 и так до ночала числа. ) получается формат числа равный Q1.N1 + Q2.N2 = Z1.N1 причём N1 (число битов дробной части) должно быть равно N2 при вычиатнии тоже самое. Z1 - целая часть. При делении Q1.N1 / Q2.N2 = Z1.(N1-N2). При умножении Q1.N1 * Q2.N2 = Z1.(N1+N2).
Ничего сложного нет. Разбирайся
|
|
|
|
24.10.2007, 13:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Для безнаковых есть книжка Фрунзе Микроконтроллеры это же просто. том3,если надо могу указать где лежит.
-- Прилагается рисунок: --
|
|
|
|
25.10.2007, 11:35
|
|
Прохожий
Регистрация: 12.06.2006
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
|
|
|
|
28.10.2007, 04:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.05.2006
Адрес: Владимир
Сообщений: 2,804
Сказал спасибо: 3,005
Сказали Спасибо 4,229 раз(а) в 1,191 сообщении(ях)
|
Сообщение от ish0
|
Подпрограммы сложения, вычитания, умножения и деления
32битовых чисел (8бит EXP, 24бит мантисса). Удели внимание подпрограмме деления!
|
Пробовал все действия производить с двумя не очень сложными числами:
; Число A = 42CCCCCD = 3.2
; Число B = 42BFFFFF = 3
Результаты:
; F_add = 428BCCCC = 2,1844
; F_sub = 42F23432 = 3,7844
; D_add = 428BCCCC = 2,1844
; D_sub = 42F23432 = 3,7844
; F_mpy = 99666A00 = -7,277e-13
; F_div = EA4FFFB1 = -1374368907263
Причём в результатах подпрограмм деления и умножения мантисса получается такой, что не выполняет условие 0,5 ‹= М ‹ 1 (см. моё первое сообщение в этой теме).
Я сделал вывод, что формат чисел, примененный в предложенных подпрограммах не такой как я описал.
Хотел отделаться малой кровью в решении моей проблемы. Думал помогут люди. Так нихоца перелопачивать AN575... Неужели никто с таким форматом чисел не сталкивался? Не верю!
|
|
|
|
28.10.2007, 04:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.05.2006
Адрес: Владимир
Сообщений: 2,804
Сказал спасибо: 3,005
Сказали Спасибо 4,229 раз(а) в 1,191 сообщении(ях)
|
Опять же переделывать надо, не те числа. Конечно займусь напишу как надо, но ещё время есть, подожду. Может кто подкинет готовенькое
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:33.
|
|