roboforum.ru

Технический форум по робототехнике.

Вопрос знатокам CV

Вопрос знатокам CV

bgn62 » 15 мар 2007, 09:01

Подскажите пожалуйста, реализована ли в CV функция аппаратного умножителя, если да, то как это выглядит?
Спасибо.

maktep » 15 мар 2007, 09:20

а это разве не то??
char a,b,c;
с = a*b;

bgn62 » 15 мар 2007, 09:56

чесно говоря я не совсем понимаю аппаратный умножитель это что, физически реализованная схема внутри контроллера, или програмная реализация?

avr123.nm.ru » 15 мар 2007, 10:11

Аппаратный - это не программа.  чтоб проверить нужно умножить что-то в CVAVR и посмотреть листинг на АСМе используются ли инструкции аппаратного умножения.

Устройство AVR  - avr123.nm.ru/02.htm

bgn62 » 15 мар 2007, 11:21

так есть ли функции в CV которые это используют

maktep » 15 мар 2007, 12:28

bgn62, ты думаешь чтоли что умножение двух байт реализовано программно в кодевижн?

avr123.nm.ru » 15 мар 2007, 13:01

bgn62 писал(а):так есть ли функции в CV которые это используют


CVAVR это компилятор Си.  

Что вам нужно сделать КОНКРЕТНО ???

bgn62 » 15 мар 2007, 16:34

http://www.atmel.ru/Articles/Atmel01.htm

AVR - микроконтроллеры: очередной этап на пути развития
Кривченко И.В.
"Компоненты и технологии" N3, 2002г.
ООО "ЭФО"
“Все новые микроконтроллеры семейства "mega" будут иметь JTAG - интерфейс (за исключением mega8), аппаратный умножитель 8х8, дающий 16-разрядный результат, схему защиты от сбоев, двухпроводной последовательный интерфейс, аналого-цифровой преобразователь”

http://dfe3300.karelia.ru/koi/posob/avr ... sm-rus.htm
Справка по Ассемблеру для Atmel AVR


FMUL Rd,Rr
Умножение дробных чисел без знака R1:R0 = (Rd * Rr) << 1 Z,C 2
FMULS Rd,Rr
Умножение дробных чисел со знаком R1:R0 = (Rd *Rr) << 1 Z,C 2
FMULSU Rd,Rr
Умножение дробного числа со знаком с числом без знака R1:R0 = (Rd * Rr) << 1 Z,C 2


Как это можно использовать в CV?

bgn62 » 18 мар 2007, 09:54

Насколько я понимаю, CV вообще не
генерирует ассемблерных инструкций:
FMUL- Умножение дробных чисел без знака
FMULS- Умножение дробных чисел со знаком
FMULSU- Умножение дробного числа со знаком с числом без знака.
Выполняемых за 2 такта
В отличие от ICC и WINAVR.
Или я ошибаюсь, может кто поправит или подтвердит

avr123.nm.ru » 18 мар 2007, 16:04

вот в CVAVR для примера:

float a = 34.43;

float b = 365.22;

float y;

y = a * b;


в файле листинга в разделе статистики использования инструкций

AT90S8535 instruction use summary:

пишет что 4 раза использовал - fmul


Но вот в тексте листинга я их так и не нашел.

avr123.nm.ru » 18 мар 2007, 16:07

Для mega16 попробовал - таже история.

Однако все это ИМХО чепуха. Нужно исзмерять в симуляторе реальное время  вычислений.


Rambler\'s Top100 Mail.ru counter