|
Преобразование кода АЦП, нужен совет |
|
|
|
 |
Ответов
|
Mar 24 2008, 13:10
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 15-01-08
Из: Новосибирск
Пользователь №: 34 105

|
Цитата(novlev @ Mar 24 2008, 17:25)  Вопрос такой: есть код ацп, его надо преобразовать в десятичную форму(1й байт целая часть, 2й - дробная). Как проще всего это сделать. Пишу на асме, контроллер - ADuC841. Я так понимаю, Вы хотите потом этот код передать по СОМ-порту в гипертерминал в цифробуквенном виде в кодах ASCII? Или что?
--------------------
Я здесь и сейчас...
|
|
|
|
|
Mar 24 2008, 13:42
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 15-01-08
Из: Новосибирск
Пользователь №: 34 105

|
Цитата(novlev @ Mar 24 2008, 19:19)  да, передать по интерфейсу 485, но не в кодеровке, а именно 2 байта, но представление инфы долждно быть как десятичное, те вычитал (например 0А8А) и отправил в первом байте 05, во втором - 12 (условно), и это типа 5,12 вольта.Сижу ломаю голову  мдя. делать такие преобразования на 8 разрядном ядре на ASM- гимор. Может сделать таблицу коэффициентов? Т.е. каждому возможному отсчету (их всего 4096) присвоить значения, полученные путем деления опорного напряжения на 4096, а потом умноженного на 12-разрядный отсчет. Эти расчеты сделать например в EXELL. Памяти в ADuC 845 для для хранения такой таблицы достаточно. Не элегантно конечно, но зато потом будет быстро работать.
Сообщение отредактировал Linker - Mar 24 2008, 13:44
--------------------
Я здесь и сейчас...
|
|
|
|
|
Mar 24 2008, 14:54
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 21-02-06
Пользователь №: 14 561

|
Цитата(Linker @ Mar 24 2008, 16:42)  мдя. делать такие преобразования на 8 разрядном ядре на ASM- гимор. ...геммороя здесь нет, книги читать надо. Вот этот фрагмент кода выполняет преобразование 12-разрядного числа в упакованное BCD-число из 2-х байт. В регистры R2 и R3 загружаете соответственно младшую и старшую часть искомого числа, на выходе в регистре R0 две младшие цифры числа, в R1 старшие цифры числа. Например R2 = FFh R3= 0Fh -> R0 = 95h R1 = 40h. Дальше все просто. Код mov R0,#0 mov R1,#0 mov R2,A mov R3,B mov R4,#0
loop: mov A,R0 add A,R0 da A mov R0,A mov A,R1 addc A,R1 da A mov R1,A
mov A,R2 rlc A mov R2,A
mov A,R3 rlc A mov R3,A
mov C,ACC.4
mov A,R0 addc A,#0 da A mov R0,A mov A,R1 addc A,#0 da A mov R1,A
inc R4 cjne R4,#12,loop
|
|
|
|
|
Mar 25 2008, 06:33
|
Частый гость
 
Группа: Участник
Сообщений: 116
Регистрация: 24-09-06
Пользователь №: 20 645

|
Цитата(tag @ Mar 24 2008, 18:54)  ...геммороя здесь нет, книги читать надо. Вот этот фрагмент кода выполняет преобразование 12-разрядного числа в упакованное BCD-число из 2-х байт. В регистры R2 и R3 загружаете соответственно младшую и старшую часть искомого числа, на выходе в регистре R0 две младшие цифры числа, в R1 старшие цифры числа. Например R2 = FFh R3= 0Fh -> R0 = 95h R1 = 40h. Дальше все просто. Спасибо. Суть ясна.  Цитата(MrYuran @ Mar 25 2008, 10:18)  А к чему такая спешка, чтобы прям сразу отвечать, за считанные такты? Ну не за считанные такты, а за 6 ms, как выяснилось сюда и время передачи инфы по магистрали включено  . Просто во главе всего стоит блок с ADSP, когда для него приходилось делать - вопросов не возникало, а с 51 я неделю только к асму привыкал. В системе много блоков, десятка 2 минимум, всех надо опросить и на преобразования такого типа времени не осталось. По требованиям цикл опроса мал. Собственно вот...
|
|
|
|
Сообщений в этой теме
novlev Преобразование кода АЦП Mar 24 2008, 11:25   novlev Цитата(Linker @ Mar 24 2008, 17:42) мдя. ... Mar 24 2008, 13:52    Linker Цитата(tag @ Mar 24 2008, 20:54) ...геммо... Mar 24 2008, 15:50     novlev Цитата(Linker @ Mar 24 2008, 19:50) Тут г... Mar 25 2008, 06:14      Linker Цитата(novlev @ Mar 25 2008, 12:14) Опорн... Mar 25 2008, 16:53       novlev Цитата(Linker @ Mar 25 2008, 20:53) Тогда... Mar 26 2008, 09:27        Linker Цитата(novlev @ Mar 26 2008, 15:27) увы ... Mar 27 2008, 17:59  @Ark Цитата(novlev @ Mar 24 2008, 16:19) да, п... Mar 27 2008, 23:10 MrYuran а почему на си нельзя? В том же Кейле, к примеру?
... Mar 24 2008, 15:02 novlev Цитата(MrYuran @ Mar 24 2008, 19:02) а по... Mar 24 2008, 15:07 MrYuran А к чему такая спешка, чтобы прям сразу отвечать, ... Mar 25 2008, 06:18 Omen_13 Можно сделать ход конём - умножением результата из... Mar 27 2008, 20:13 Omen_13 Нашел фрагмент, может поможет...
R6R5 - код с АЦП ... Mar 28 2008, 14:51 novlev всем спасибо за советы, забрел сейчас в такие дебр... Apr 2 2008, 08:30 novlev Все... имею на выходе челую и дробную части, загру... Apr 2 2008, 10:18 asm_lock Я так понимю тема про АЦП. В контроллера ADuC841, ... Jul 9 2010, 22:52 asm_lock Я так понимю тема про АЦП. В контроллера ADuC841, ... Jul 10 2010, 08:17 Микрюков Вячеслав Цитата(novlev @ Mar 24 2008, 15:25) Вопро... Sep 6 2010, 08:29
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|