[an error occurred while processing this directive]
Как изящней на С для AVR написать определение переполнения в глобальной переменной long int ? Без вставки asm.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
DimaS
16 августа 2005 г. 17:17
Составить ответ
|||
Конференция
|||
Архив
Ответы
Извиняюсь невнимательность.Хотел написать unsigned int.Полюбил asm.Особенно нравятся инструкции перехода.Если немного поупражнятся ,быстрее и лучше на asme.
—
DimaS
(16.08.2005 19:52
84.53.199.91
,
пустое
)
Для беззнаковых чисел признаком переполнения будет флажок C.
—
Bill
(16.08.2005 20:40
212.57.170.192
,
пустое
)
Уважаемый BiLL , пробовал читать в прерывании состояние С бита SREG после выполнения сложения . Не выходит .
—
DimaS
(16.08.2005 21:13
84.53.199.91
,
пустое
)
Что значит не выходит? Все же очень просто, и без прерываний можно сделать.
—
Bill
(16.08.2005 22:02
212.57.173.38
, 186 байт)
Ответ: На С писал так.На ассемблере нет вопросов.
—
DimaS
(17.08.2005 12:10
84.53.199.91
, 62 байт)
Можно так
—
Bill
(16.08.2005 17:35
212.57.171.93
, 216 байт)
Кажется, последней проверкой должно быть не lr>0, а lr>=0
—
Lamer
(16.08.2005 18:15
80.243.1.228
,
пустое
)
Да, наверное так.
—
Bill
(16.08.2005 18:28
212.57.170.203
,
пустое
)
А так?
—
Need Хелп
(16.08.2005 18:14
212.1.233.242
, 179 байт)
В общем смысл такой. Переполнение происходит если при сложении
—
Bill
(16.08.2005 18:23
212.57.170.203
, 142 байт)
В смысле для unsigned
—
Need Хелп
(16.08.2005 18:17
212.1.233.242
,
пустое
)
Для unsigned проверка знака не имеет смысла.
—
Bill
(16.08.2005 18:26
212.57.170.203
,
пустое
)
Знак и не проверяем. а проверка на переполнение смысл имеет
—
Need Хелп
(16.08.2005 18:34
212.1.233.242
,
пустое
)
Ну да.
—
Bill
(16.08.2005 18:38
212.57.170.203
,
пустое
,
ссылка
)
Тогда тоже надо >=
—
Lamer
(16.08.2005 18:18
80.243.1.228
,
пустое
)
Зачем?
—
Need Хелп
(16.08.2005 18:20
212.1.233.242
,
пустое
)
Если одно из слагаемых == 0, то у Вас перенос появится.
—
Lamer
(16.08.2005 18:22
80.243.1.228
,
пустое
)
Ага нужно <=
—
Need Хелп
(16.08.2005 18:27
212.1.233.242
,
пустое
)
Если l2 равно 0 :)
—
Lamer
(16.08.2005 18:24
80.243.1.228
,
пустое
)
А если l1=100, а l2=-5 ?
—
Lamer
(16.08.2005 18:17
80.243.1.228
,
пустое
)
Про знаковые чето и не думал.
—
Need Хелп
(16.08.2005 18:19
212.1.233.242
,
пустое
)
Для usigned будет
—
Bill
(16.08.2005 18:35
212.57.170.203
, 99 байт)
Еще раз:
—
Bill
(16.08.2005 18:37
212.57.170.203
, 99 байт)
А так?
—
Need Хелп
(16.08.2005 18:55
212.1.233.242
, 129 байт)
Так вроде нормально.
—
Bill
(16.08.2005 20:34
212.57.170.192
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
NoIX ключ
:
Запомнить
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru