|
0 / 0 / 0
Регистрация: 28.03.2016
Сообщений: 3
|
|||||||||||
Помогите оптимизировать код в CodeVisionAVR11.02.2012, 15:41. Показов 12426. Ответов 12
Метки нет (Все метки)
Программа для измерения температуры, влажности и давления.
Как его можно оптимизировать? Знаний для этого у меня маловато!
0
|
|||||||||||
| 11.02.2012, 15:41 | |
|
Ответы с готовыми решениями:
12
Помогите оценить и оптимизировать код до максимальной скорос Помогите оптимизировать код Помогите оптимизировать код |
|
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 49
|
|||||||||||
| 11.02.2012, 16:27 | |||||||||||
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 115
|
||||||||||||||||||||||
| 11.02.2012, 19:18 | ||||||||||||||||||||||
|
Вот так не делай:
Невнятно:
Кучку строк в фоне (while(1)) объединить бы в функции. Например: какие-то вычисления отдельно, вывод на экран отдельно.
0
|
||||||||||||||||||||||
|
DZ HipB
|
|
| 12.02.2012, 00:21 | |
|
В последней строке void temperature(void) обнуление переменной правильно? Похоже там должна быть другая переменная!!!
|
|
|
0 / 0 / 0
Регистрация: 28.03.2016
Сообщений: 3
|
|||
| 12.02.2012, 00:52 | |||
Переписал измерение температуры как рекомендовано.
Может, подскажете, как правильно сделать? И еще вопрос: нужно ли при этих измерениях инициализировать таймер и ставить на него прерывания? В примерах, что я находил, устанавливают прерывание по переполнению таймера0?
0
|
|||
|
0 / 0 / 0
Регистрация: 28.03.2016
Сообщений: 3
|
||
| 12.02.2012, 01:10 | ||
Поскольку я буду использовать измерение температуры дома и на улице, то пределы , я так думаю, устанавливать не обязательно, а вот как вставить, чтобы при отсутствии датчика вместо значения выводилось что то типа ERROR или NO?
0
|
||
|
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 115
|
||||
| 12.02.2012, 06:40 | ||||
0
|
||||
|
0 / 0 / 0
Регистрация: 28.03.2016
Сообщений: 3
|
||
| 12.02.2012, 21:58 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 28.03.2016
Сообщений: 3
|
|||||||||||
| 15.02.2012, 00:57 | |||||||||||
|
"Oxydi" писал:
А как сделать, чтобы обнулялось и при < -50?
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 115
|
||||||||
| 15.02.2012, 06:14 | ||||||||
обнуляется только при превышении положительного значения. А как сделать, чтобы обнулялось и при < -50? Это я вот так написал? Ошибся конечно. Убирай амперсанд и в условии должно стоять "или".
0
|
||||||||
|
0 / 0 / 0
Регистрация: 28.03.2016
Сообщений: 3
|
|||||||
| 15.02.2012, 14:28 | |||||||
Я уже и сам подумал, что что-то не то с условием, только не пойму, почему работает этот код и в интернете везде пишут с одним &
0
|
|||||||
|
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 115
|
|||
| 15.02.2012, 19:35 | |||
temp1= temp1; else { temp1 =0; } Один апмерсанд при проверке двух условий писать не советую. Это побитовое И. Получается так: сработало первое условие - 1, сработало второе условие - 1; 1 & 1 = 1 (trui). Я так понимаю у тебя есть какой-то диапазон и если твоя переменная выходит за этот диапазон, то ошибка и переменную обнуляем. Тогда рассуждаем так: если меньше -50 или больше +50, то ошибка. Больше никаких условий здесь не нужно. temp1= temp1; - лишняя запись.
Я рекомендую использовать прерывания только тогда, когда это действительно надо, например: UART, таймер. Лишнее прерывание отвлекает контроллер. Тем более если оно задействовано для кнопки, которая переключает какие-то показания. Внешнее прерывание заводить на кнопку в том случае, когда, скажем, у тебя энергосберегающая система и нужно выводить контроллер из спящего режима.
0
|
|||
|
0 / 0 / 0
Регистрация: 28.03.2016
Сообщений: 3
|
||
| 15.02.2012, 23:01 | ||
И если во время их выполнения нажать и отпустить кнопку, изменений не будет. Кнопку нужно удерживать некоторое время, а это не совсем удобно. С диапазонами все нормально, спасибо! И еще вопрос не по теме, можно ли вывести частоту кварца на какой-нибудь порт? Часовой кварц подключен к AVR в асинхронном режиме, при измерении частоты вносится емкость и частота немного уходит. Да и амплитуда на выводах мала, проблематично замерить. Что-то в интернете я не нашел.
0
|
||
| 15.02.2012, 23:01 | |
|
Помогаю со студенческими работами здесь
13
Помогите оптимизировать код Помогите разобрать и оптимизировать код. Помогите оптимизировать мой код работа со строчкой: помогите оптимизировать мой тупой код) Помогите с CodeVisionAVR 3.12 косяк в интерфейсе... Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|