Omen_13 0 27 марта, 2008 Опубликовано 27 марта, 2008 · Жалоба Можно сделать ход конём - умножением результата измерения АЦП на заранее посчитанный Кi. Тогда делить надо только на 100. Хотя если подумать и эту операцию можно по возможности сократить. Где-то делал такой алгоритм на асме, завтра гляну в старых проектах Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 27 марта, 2008 Опубликовано 27 марта, 2008 · Жалоба да, передать по интерфейсу 485, но не в кодеровке, а именно 2 байта, но представление инфы долждно быть как десятичное, те вычитал (например 0А8А) и отправил в первом байте 05, во втором - 12 (условно), и это типа 5,12 вольта.Сижу ломаю голову:( Голову не ломайте - сделайте просто: определите как выглядят значения 1.00, 0.10 и 0.01 вольт в вашем двухбайтовом представлении. Далее: вычитанием из текущего значения определяете количество сначала единиц, затем десятых, затем сотых. Три цикла максимум по 10 проходов. Не так уж и много по времени... Потребуются 5 вариантов для разных масштабов напряжений... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Omen_13 0 28 марта, 2008 Опубликовано 28 марта, 2008 · Жалоба Нашел фрагмент, может поможет... R6R5 - код с АЦП (старший и младший байты), DataRashL - мл. байт Ki*256 (Ki дробный), DataRashH - старший байт, в R2R1R0 будет результат. MOV A,R5 //R2R1R0 = R6R5*DataRash /256 MOV B,DataRashL MUL AB MOV R0,B MOV A,R6 MOV B,DataRashL MUL AB ADD A,R0 MOV R0,A CLR A ADDC A,B MOV R1,A CLR A ADDC A,#00h MOV R2,A MOV A,R5 MOV B,DataRashH MUL AB ADD A,R0 MOV R0,A MOV A,R1 ADDC A,B MOV R1,A MOV A,R2 ADDC A,#00h MOV R2,A MOV A,R6 MOV B,DataRashH MUL AB ADD A,R1 MOV R1,A MOV A,R2 ADDC A,B MOV R2,A Возможно что не оптимизировано по тактам, но довольно шустро и точно... Если надо гляну как деление делал Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novlev 0 2 апреля, 2008 Опубликовано 2 апреля, 2008 · Жалоба всем спасибо за советы, забрел сейчас в такие дебри, делю - нахожу целую часть, потом умножаю на 16, опять делю, и еще раз...имею вроде как дробь в 16 формате, типа 4,8Е, вот теперь осталось перевести и все... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novlev 0 2 апреля, 2008 Опубликовано 2 апреля, 2008 · Жалоба Все... имею на выходе челую и дробную части, загрубляю результат на тысячных, кому интересно - могу дать чо накрапал. просто целочисленное деление по сути... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Asm_lock 0 9 июля, 2010 Опубликовано 9 июля, 2010 · Жалоба Я так понимю тема про АЦП. В контроллера ADuC841, АЦП может работать как температурный датчик. Вопрос. Как этот дачик отградуирован ? какой код соответсвует 0 град, и как меняется код при изменении температцры на 1 град. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Asm_lock 0 10 июля, 2010 Опубликовано 10 июля, 2010 (изменено) · Жалоба Я так понимю тема про АЦП. В контроллера ADuC841, АЦП может работать как температурный датчик. Вопрос. Как этот дачик отградуирован ? какой код соответсвует 0 град, и как меняется код при изменении температуры на 1 град. Изменено 10 июля, 2010 пользователем asm_lock Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mikryukovsl 0 6 сентября, 2010 Опубликовано 6 сентября, 2010 (изменено) · Жалоба Вопрос такой: есть код ацп, его надо преобразовать в десятичную форму(1й байт целая часть, 2й - дробная). Как проще всего это сделать. Пишу на асме, контроллер - ADuC841. А вот такой вариант: при помощи сдвига обоих байтов влево или вправо подогнать нужное входное напряжение. Если ни чего не двигать то 16 вольт в старшем байте - это максимальное входное напряжение, остаётся подогнать усиление на на входе ADC. Младший байт уже доли от одного вольта. Простенько, но со вкусом! Ни каких плавающих запятых, вопрос только в железе, позволяет ли оно менять усиление? Изменено 6 сентября, 2010 пользователем Микрюков Вячеслав Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться