Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
08.12.2010, 12:35
|
|
Вид на жительство
Регистрация: 07.03.2005
Сообщений: 300
Сказал спасибо: 13
Сказали Спасибо 117 раз(а) в 62 сообщении(ях)
|
Вторая переменная, зависящая от первой
Помогите решить проблему. Программа на CVAVR.
Есть переменная, автоматически изменяющаяся в программе с шагом 1 от 0 до 7500.
Нужна вторая переменная, которая изменялась бы с шагом 1/10 от первой, т.е. с шагом кратным 75. Например 1-я достигла значения 75, 2-я стала 1. 1-я 150 2-я стала 2. 1-я 225 2-я стала 3 и т. д. до 1-я 7500 2-я равна 100.
|
|
|
|
08.12.2010, 12:40
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: Вторая переменная, зависящая от первой
Сообщение от mironov
|
Есть переменная, автоматически изменяющаяся в программе с шагом 1 от 0 до 7500.
Нужна вторая переменная, которая изменялась бы с шагом 1/10 от первой, т.е. с шагом кратным 75. Например 1-я достигла значения 75, 2-я стала 1. 1-я 150 2-я стала 2. 1-я 225 2-я стала 3 и т. д. до 1-я 7500 2-я равна 100.
|
Ну так делите первую на 75 и результат помещайте во вторую.
|
|
|
|
08.12.2010, 12:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: Вторая переменная, зависящая от первой
Если ресурсы времени не позволяют использовать деление, введите в процедуре инкремента первой переменной дополнительный счетчик на 75 и по его переполнению увеличивайте значение 2-й переменной. Расход ресурсов - 1 ячейка памяти данных и 10-12 машинных комманд (не больше, может и меньше)
__________________
misterdi<@>i.ua
|
|
|
|
08.12.2010, 12:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
|
Re: Вторая переменная, зависящая от первой
Сообщение от mironov
|
Помогите решить проблему. Программа на CVAVR.
Есть переменная, автоматически изменяющаяся в программе с шагом 1 от 0 до 7500.
Нужна вторая переменная, которая изменялась бы с шагом 1/10 от первой, т.е. с шагом кратным 75. Например 1-я достигла значения 75, 2-я стала 1. 1-я 150 2-я стала 2. 1-я 225 2-я стала 3 и т. д. до 1-я 7500 2-я равна 100.
|
Ну делишь на 10 первую и присваиваешь второй. Делаешь это сразу после изменения значения первой переменной. На это вермя можно например прерывания отрубить
|
|
|
|
08.12.2010, 12:59
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: Вторая переменная, зависящая от первой
Сообщение от Gnider
|
Ну делишь на 10 первую и присваиваешь второй. Делаешь это сразу после изменения значения первой переменной. На это вермя можно например прерывания отрубить
|
И что получится? Первая 225/10 = 22, а должно 3.
|
|
|
|
08.12.2010, 15:22
|
|
Заблокирован
Регистрация: 15.10.2010
Адрес: Kiev/Kharkov
Сообщений: 133
Сказал спасибо: 15
Сказали Спасибо 21 раз(а) в 21 сообщении(ях)
|
Re: Вторая переменная, зависящая от первой
Сообщение от mironov
|
Помогите решить проблему. Программа на CVAVR.
Есть переменная, автоматически изменяющаяся в программе с шагом 1 от 0 до 7500.
Нужна вторая переменная, которая изменялась бы с шагом 1/10 от первой, т.е. с шагом кратным 75. Например 1-я достигла значения 75, 2-я стала 1. 1-я 150 2-я стала 2. 1-я 225 2-я стала 3 и т. д. до 1-я 7500 2-я равна 100.
|
по идее достаточно этого, к примеру x=[0..7500], y=x/75;
if (!(x%75)) y++;
пара-тройка тактов процессора
|
|
|
|
08.12.2010, 15:29
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: Вторая переменная, зависящая от первой
Сообщение от projects.org.ua
|
по идее достаточно этого, к примеру x=[0..7500], y=x/75;
if (!(x%75)) y++;
пара-тройка тактов процессора
|
Так это тоже деление и никак не пара-тройка тактов. Быстро если есть аппаратный делитель.
Последний раз редактировалось realid; 08.12.2010 в 15:32.
|
|
|
|
08.12.2010, 16:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Вторая переменная, зависящая от первой
Сообщение от realid
|
Так это тоже деление и никак не пара-тройка тактов.
|
+++
ИМХО как предложил МИСТЕРДИ таки оптимальнее ...
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
|
|
|
|
08.12.2010, 17:17
|
|
Вид на жительство
Регистрация: 07.03.2005
Сообщений: 300
Сказал спасибо: 13
Сказали Спасибо 117 раз(а) в 62 сообщении(ях)
|
Re: Вторая переменная, зависящая от первой
Сообщение от MisterDi
|
Если ресурсы времени не позволяют использовать деление, введите в процедуре инкремента первой переменной дополнительный счетчик на 75 и по его переполнению увеличивайте значение 2-й переменной. Расход ресурсов - 1 ячейка памяти данных и 10-12 машинных комманд (не больше, может и меньше)
|
Вариант устраивает лучше других.
Подробней можно? Пару строчек кода?
Модератору! Как теперь писать и отвечать? Пока эти два слова расшифруешь крыша едет.
Неужели нельзя как раньше без фокусов. Для кого это?
|
|
|
|
08.12.2010, 17:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Вторая переменная, зависящая от первой
Сообщение от MisterDi
|
Если ресурсы времени не позволяют использовать деление, введите в процедуре инкремента первой переменной дополнительный счетчик на 75 и по его переполнению увеличивайте значение 2-й переменной. Расход ресурсов - 1 ячейка памяти данных и 10-12 машинных комманд (не больше, может и меньше)
|
А где у mironov сказано, что переменная будет инкрементироваться. Я так понял, что "автоматически изменяющаяся", т.е. могущая принять любое значение, но автоматически. Что значит "автоматически" - не понял вообще..
Значит параллельный инкремент напрочь отлетает, только вычислителем.
Или не так, mironov?
Последний раз редактировалось ut1wpr; 08.12.2010 в 17:27.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:57.
|
|