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

 
 
> Как в Си определить выход за пределы кода (переполнение) результата операции ?
MaxiMuz
сообщение Apr 23 2013, 18:38
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 253
Регистрация: 15-04-10
Из: Волгоград
Пользователь №: 56 658



Элементарная ситуация: Имеется два 16-битных числа , при их сложении нужно отслеживать ситуацию переполнения результата.
Пробую:
Код
uint16_t temp16;
uint16_t sumADC;

if ((sumADC+=temp16)>0xffff)
     { // Отключение АЦП  !!
         ADCSRA=(1<<ADEN);}

понимаю что это нет то ....
Нужно как можно короче превести это к коду (для AVR):
Код
add rd_l,rs_l
adc rd_h,rs_h
brcs m1
....

Как это все оформляется в Си ?

Сообщение отредактировал MaxiMuz - Apr 23 2013, 19:18
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MaxiMuz   Как в Си определить выход за пределы кода (переполнение) результата операции ?   Apr 23 2013, 18:38
- - arttab   а по флагу переполнения не проще ли?   Apr 24 2013, 01:06
- - maksimp   Такой именно ассемблерный код как вы хотите может ...   Apr 24 2013, 03:09
|- - MaxiMuz   Цитата(maksimp @ Apr 24 2013, 06:09) Тако...   Apr 25 2013, 10:05
|- - maksimp   Цитата(MaxiMuz @ Apr 25 2013, 14:05) введ...   Apr 25 2013, 18:09
|- - MaxiMuz   Цитата(maksimp @ Apr 25 2013, 21:09) Пров...   Apr 26 2013, 06:06
- - VslavX   Можно попробовать так: Кодuint16_t temp16; uint16_...   Apr 24 2013, 05:14
- - Alexey K   CODE uint16_t temp16; uint16_t sumADC; uint32_t su...   Apr 24 2013, 05:54
|- - ARV   Цитата(Alexey K @ Apr 24 2013, 09:54) COD...   Apr 24 2013, 05:59
|- - demiurg_spb   Цитата(ARV @ Apr 24 2013, 09:59) Кодuint3...   Apr 24 2013, 07:49
- - Vetal-Soft   Кодif ((0xffff-sumADC) < temp16...   Apr 24 2013, 05:58
- - ViKo   А что, arttab дал плохой совет? Доступ к флагам им...   Apr 24 2013, 05:58
- - Alexey K   Согласен. Утро однако   Apr 24 2013, 06:01
- - MrYuran   А при сравнении флаг С учитывается? Иначе крайние ...   Apr 24 2013, 07:00
- - XVR   Сделайте ассемблерную inline функцию. GCC это очен...   Apr 26 2013, 06:26


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

 


RSS Текстовая версия Сейчас: 20th June 2025 - 12:24
Рейтинг@Mail.ru


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