реклама на сайте
подробности

 
 
> 2 байта в AVR, как сранить и обработать 16 разрядов в ATmega?
pimen
сообщение Dec 23 2007, 23:37
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 30-11-07
Пользователь №: 32 846



Вопрос собственно в следующем:
разработана плата (и что плохо изготовлена), где есть связка Atmega128 и термодатчик MAX6630
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2577/t/al
Выход термодатчика - 13 бит (12+знак) и еще мусор до 2 байт (по spi).
как сравнить и обработать данные в восьмибитном микроконтроллере?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alexander55
сообщение Dec 26 2007, 05:52
Сообщение #2


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(pimen @ Dec 24 2007, 02:37) *

Если работаете с С используйте для 16 битных данных типы unsigned int и int.
Все Ваши проблемы решит компилятор.
Go to the top of the page
 
+Quote Post
MMos
сообщение Dec 28 2007, 12:01
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 147
Регистрация: 7-12-07
Пользователь №: 33 057



Снимаю шляпу перед автором алгоритма. Красота-а-а-а!
На Си попробовать было негде - сваял процедурочку на VBA. Расширил до 16 разрядов. Алгоритм потенциально расширяем на любое количество разрядов. Вы будете смеяться, но я его понял! Правда только после того, как запустил под отладчиком.
В общем СУПЕР! Рекомендую программистам всех времён, народов и языков.
Побежал реализовывать на ассемблере.
Go to the top of the page
 
+Quote Post
MMos
сообщение Dec 29 2007, 09:08
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 147
Регистрация: 7-12-07
Пользователь №: 33 057



Ниже приведена ассемблерная реализация алгоритма для MSC-51 (в AVR пока не силён).
В примере преобразуется десятичное число 23456.
Удлинняет код та особенность, что "полезные" операции можно выполнять только с аккумулятором.
При попытке перевести реализацию на AVR столкнулся с проблемой - не могу найти операцию двоично-десятичной коррекции (в нижеприведеном коде это команда DA). Это мне так не повезло или такой операции у AVR вообще нет?

start:
mov r3,#0 ; результат старший байт
mov r4,#0 ; результат средний байт
mov r5,#0 ; результат младший байт
mov r6,#05bh ; исходные данные старший байт
mov r7,#0a0h ; исходные данные младший байт
mov r0,#16 ; счётчик циклов
cycle:
mov a,r7
rlc a
mov r7,a
mov a,r6
rlc a
mov r6,a
mov a,r5
addc a,r5
da a
mov r5,a
mov a,r4
addc a,r4
da a
mov r4,a
mov a,r3
addc a,r3
da a
mov r3,a
djnz r0,cycle

Сообщение отредактировал MMos - Dec 29 2007, 09:11
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- pimen   2 байта в AVR   Dec 23 2007, 23:37
- - DASM   C чем именно сравнить и как обработать ? На каком ...   Dec 24 2007, 00:13
- - arttab   Организовать хранение 2 Б + Цитатамусор до 2 байт ...   Dec 24 2007, 02:49
|- - MMos   Расскажи поподробнее, что бы ты делал с данными, е...   Dec 25 2007, 08:14
- - pimen   первоначально планировал сравнение значения темпер...   Dec 25 2007, 11:07
- - Algol   Попробуйте потестировать в отладчике мою функцию u...   Dec 25 2007, 11:22
|- - DASM   Цитата(Algol @ Dec 25 2007, 14:22) отрыл ...   Dec 26 2007, 01:55
- - arttab   Довольно странные вопросы. Если пользуетесь Си ко...   Dec 26 2007, 01:28
- - pimen   Всех с наступившим Новым Годом! написал прогу ...   Jan 2 2008, 23:35
- - vooon   прочитать например так: (старший байт первый) Код...   Jan 3 2008, 11:41
- - slanted   Цитата(pimen @ Dec 24 2007, 03:37) Вопрос...   Jan 3 2008, 11:51
|- - pimen   Цитата(slanted @ Jan 3 2008, 14:51) Для э...   Jan 3 2008, 14:57
|- - slanted   Цитата(pimen @ Jan 3 2008, 18:57) а как э...   Jan 3 2008, 16:36
- - pimen   ЛЮДИ!!!! Объясните! есть прогр...   Jan 6 2008, 01:02
|- - zltigo   Цитата(pimen @ Jan 6 2008, 03:02) это неч...   Jan 6 2008, 01:47
|- - slanted   Цитата(zltigo @ Jan 6 2008, 05:47) Главна...   Jan 6 2008, 12:12
|- - zltigo   Цитата(slanted @ Jan 6 2008, 14:03) И где...   Jan 6 2008, 12:16
- - AHTOXA   ЦитатаT=(0b10001100<<8)>>3; ... выдает...   Jan 6 2008, 05:41
- - pimen   Еще вопрос по С: использовал оператор goto. Сам оп...   Jan 10 2008, 20:22
|- - mdmitry   Цитата(pimen @ Jan 10 2008, 23:22) Еще во...   Jan 10 2008, 20:48
|- - slanted   Цитата(pimen @ Jan 11 2008, 00:22) Еще во...   Jan 10 2008, 22:28
|- - alexander55   Цитата(pimen @ Jan 10 2008, 23:22) Еще во...   Jan 11 2008, 08:34
- - pimen   по поводу оператора goto, пользуясь вашими советам...   Jan 11 2008, 09:35
- - alexander55   Цитата(pimen @ Jan 11 2008, 12:35) по пов...   Jan 11 2008, 10:34
- - pimen   Цитата(alexander55 @ Jan 11 2008, 13:34) ...   Jan 11 2008, 11:42
- - alexander55   Цитата(pimen @ Jan 11 2008, 14:42) Вы сов...   Jan 11 2008, 12:12


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 22:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01394 секунд с 7
ELECTRONIX ©2004-2016