помогите организовать счетчик

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

помогите организовать счетчик

Сообщение vovik15 »

здравствуйте!

есть переменная unsigned char tmp;
к ней мы будем прибавлять значения tmp++;
и от нее же отнимать tmp--;

когда прибавляем 1,2,3...255-0 и так далее по кругу
а когда отнимаем 100,99,98...0 и счет больше не идет в обратном направлении!

как с этим бороться?
спасибо за помощь
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: помогите организовать счетчик

Сообщение pyzhman »

Код: Выделить всё

if(tmp) --tmp;
т.е. если переменная не равна 0, то уменьшаем на 1.
Docendo discimus
Реклама
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: помогите организовать счетчик

Сообщение vovik15 »

вставил код. всеравно отнимает до 0,и на этом счет останавливаеться
а мне нужно так чтобы 2-1-0-255-254-253 и так далее
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: помогите организовать счетчик

Сообщение Мастер Ломастер »

vovik15 писал(а):вставил код. всеравно отнимает до 0,и на этом счет останавливаеться
а мне нужно так чтобы 2-1-0-255-254-253 и так далее
код, который вам посоветовал pyzhman именно с остановкой в нуле и будет работать. вы непонятно выразились в первом посте. в бесконечном цикле tmp--; без всяких прибамбасов всегда будет работать так, как вы хотите: 2-1-0-255-254-253...
битва с дураками проиграна, победители торжествуют. слава победителям!
Реклама
Эиком - электронные компоненты и радиодетали
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: помогите организовать счетчик

Сообщение vovik15 »

да в том то и дело что постоянно бесконечный цикл не работает. отнимает до нуля и счет останавливаеться
Реклама
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: помогите организовать счетчик

Сообщение Engineer_Keen »

Значит у вас не бесконечный цикл, а с каким-то условием по tmp. Приводите код целиком.
Реклама
Аватара пользователя
Dotoro22
Встал на лапы
Сообщения: 100
Зарегистрирован: Пт окт 28, 2011 19:45:23

Re: помогите организовать счетчик

Сообщение Dotoro22 »

Ты же сам unsigned поставил)
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: помогите организовать счетчик

Сообщение vovik15 »

а разве UNSIGNED плохо?
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: помогите организовать счетчик

Сообщение ploop »

Неплохо, но это беззнаковое число, и по логике не может быть меньше нуля.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: помогите организовать счетчик

Сообщение pyzhman »

Это что за код, в котором после 3,2,1,0 не идет 255 при unsigned char?
Docendo discimus
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: помогите организовать счетчик

Сообщение Мастер Ломастер »

pyzhman писал(а):Это что за код, в котором после 3,2,1,0 не идет 255 при unsigned char?
программисты, родившиеся под знаком Овна, пишут овно-код :)))
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: помогите организовать счетчик

Сообщение ploop »

Так идёт или не идёт? Мне ведь тоже интересно, надо к Сям приобщаться :)))
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: помогите организовать счетчик

Сообщение pyzhman »

Вот что дает CV при компиляции:

Код: Выделить всё

                 ; 0000 0082 --tmp;
                 _0x46:
000105 947a      	DEC  R7
Docendo discimus
phenomen
Потрогал лапой паяльник
Сообщения: 310
Зарегистрирован: Пт дек 17, 2010 14:41:25

Re: помогите организовать счетчик

Сообщение phenomen »

Самому стало интересно :)
Если с

Код: Выделить всё

unsigned char tmp = 255;
tmp++;
все более менее понятно (установка флага переполнения)
то

Код: Выделить всё

unsigned char tmp = 0;
tmp--;
непоняточка.

Топикстартеру:

Код: Выделить всё

if(tmp != 255)
     tmp++;
else
     tmp = 0;

Код: Выделить всё

if(tmp != 0)
     tmp--;
else
     tmp = 255;
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: помогите организовать счетчик

Сообщение uldemir »

А signed позволяет себя переполняться? тогда может сделать union с signed и unsigned. Signed крутить, а unsigned использовать?
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
phenomen
Потрогал лапой паяльник
Сообщения: 310
Зарегистрирован: Пт дек 17, 2010 14:41:25

Re: помогите организовать счетчик

Сообщение phenomen »

Компилятор всеравно заменит -- и ++ на DEC и INC соответсвенно независимо от типа переменной
Последний раз редактировалось phenomen Пт фев 17, 2012 16:42:55, всего редактировалось 1 раз.
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: помогите организовать счетчик

Сообщение uldemir »

тогда не понятно в чем собственно проблема.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»