Здравствуйте! Написана программа, подключены библиотеки, но все это сделано без учета прерываний.На данном этапе появилась необходимость использования их. Без них все вроде работает красиво и как надо. Настроил и включил прерывание и тут начался беспредел...Я понимаю что это связано с тем,что прерывания влезают не в свое дело и портят картину. Как и где именно расставить запреты?
я так понимаю, это был сарказм. а теперь перечитайте, что вы написали, и скажите, какая полезная информация содержится в вашем тексте? вы написали что-то типа мычания пьяного сторожа зоопарка, у которого слон сбежал "я того этого, а он как это, ну того самое, ну ваще, это ж надо так!"
так что вполне бы вам минусов надо подсыпать в топку...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
а теперь перечитайте, что вы написали, и скажите, какая полезная информация содержится в вашем тексте?
у меня в данной проблеме к сожалению полная растерянность и полное парение в пространстве.Если б я знал какую полезную информацию Вам закинуть, возможно и не появилась бы эта тема.
Написана программа, подключены библиотеки, но все это сделано без учета прерываний.На данном этапе появилась необходимость использования их.
Для чего прерывания вам?
ROMan2947 писал(а):
Без них все вроде работает красиво и как надо.
Дело в том,что поэтапно я навешиваю на МК периферию. Сначала LCD,ds18b20,клавиатуру,ds1307,генераторы импульсов и т.д. часть периферии навешал, где не использовалось прерывание все работает.Сейчас подключаю генераторы импульсов тут-то и нужны стали INTы...
Карма: 20
Рейтинг сообщений: 188
Зарегистрирован: Вс мар 28, 2010 12:52:22 Сообщений: 1368 Откуда: Беларусь
Рейтинг сообщения:1
Прерывания нужно запрещать там, где требуется приоритет над ними - например тайминг логического состояния в программной реализации протокола. Только нужно учитывать моменты, вроде "не менее" или "не более" и все будет хорошо. Например, в I2C - время лог. 0 в линии CLK - не ограничено для микросхемы 24Сxx. Т.е., выставив уровни на выводах можно разрешать прерывания и включать задержку. А получится она 5мкС (100 кГц) или 50 из-за прерывания будет не важно.
_________________ «Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Карма: 20
Рейтинг сообщений: 188
Зарегистрирован: Вс мар 28, 2010 12:52:22 Сообщений: 1368 Откуда: Беларусь
Рейтинг сообщения:0
Подключить в нее *.obj или аналогичный (не *.hex) файл и запустить в пошаговом выполнении. На вектора прерываний поставить точки останова - по выходу будете знать, откуда был "прыжок" и чем он чреват для данного участка кода.
_________________ «Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Прерывания нужно запрещать там, где требуется приоритет над ними - например тайминг логического состояния в программной реализации протокола. Только нужно учитывать моменты, вроде "не менее" или "не более" и все будет хорошо. Например, в I2C - время лог. 0 в линии CLK - не ограничено для микросхемы 24Сxx. Т.е., выставив уровни на выводах можно разрешать прерывания и включать задержку. А получится она 5мкС (100 кГц) или 50 из-за прерывания будет не важно.
Момент "не менее" я думаю невозможно испортить прерыванием.... а вот "не более"" легко. значит главный враг это время?
Подключить в нее *.obj или аналогичный (не *.hex) файл и запустить в пошаговом выполнении. На вектора прерываний поставить точки останова - по выходу будете знать, откуда был "прыжок" и чем он чреват для данного участка кода.
ммм...начинаю понимать про что Вы...для этого я думаю лучше avrdragonom пройтись,нет?
Карма: 20
Рейтинг сообщений: 188
Зарегистрирован: Вс мар 28, 2010 12:52:22 Сообщений: 1368 Откуда: Беларусь
Рейтинг сообщения:0
Proteus допускает пошаговую отладку при симуляции. При этом также доступен код, который был подключен к контроллеру. А про "не ...." - нужно выделить данные участки кода, критичные ко времени выполнения, и выделить их в cli - sei.
_________________ «Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2693 Откуда: г. Чайковский
Рейтинг сообщения:1 Медали: 1
ROMan2947 писал(а):
Если б я знал какую полезную информацию Вам закинуть,
Описание схемы или ее предоставление в форум. Как и что делало устройство "до". Что добавлено в код и как стало неправильно работать. С приложением исходного кода, но только не в виде портянки на 8 листов.
ROMan2947, представте , что на мед.форуме Вы создали топик: "Мне было хорошо, я что-то съел и мне стало плохо, дайте таблетку". Как Вы думаете, Вам помогут с таким вопросом? И не удивлюсь, что если все-таки вытянут из Вас нужную инфу, то окажатся съели Вы банан, подскользнулись на его шкуре, сломали ногу и нужна совсем не таблетка.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
если делать поуму - скорее весь код придется переписать, раскладывая по полочкам, если костылить - найдите в коде delay_ms(); (думаю если всё сделано без прерываний - они у вас есть) и разрешайте прерывания до них, а сразу после запрещайте обратно, может и поможет.
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Совершенно неудачный подход к решению задачи: "...сначала создам простое, а затем добавляю обвеску..." Дело в том, что постепенное наращивание периферии без начального планирования и распределения ресурсов под возможное наращивание в процессе начального проектировании схемы неизбежно приведет в конфликтам минимум в программной части проекта. Так чот в Вашем, ROMan2947 случае КАЖДУЮ схемку лучше начинать проектировать заново, исходя из наработанного ранее опыта (вариации библиотек) и текущей поставленной задачи. Возможно прийдется и схемотехнику подключения внешних устройств и распределение взаимосвязей между программными модулями (подпрограммами) изменять. Со временем и опыт изначального планирования "идея -схема -программа" прийдет. На начальном этапе надо стараться действовать "по правилам" (или как можно ближе к ним). МК штука прикладная... Так что ежли "затык" и не совсем понятно как объяснить для "уже знающих" возникшую проблему начинаем с выкладывания схема исходник чего хотелось получить что получилось в реале (предпочтительно макет - но для большинства сейчас и симулятора протезного хватит).
while (!(ds18b20_PIN&(1 << DQ))); может выполняться очень долго, вот, во время его и попробуй разрешить прерывания
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
ROMan2947 Текстовку ставить под спойлер надо (выделяем текст - жмем Code, снова выделяем все что получилось/с окантовочными символами/ и жмем spoiler) - так основные тексты сообщений не будут загромождаться. А кому интереснт - откроют полный текст. Для контроля результата перед окончательной отправкой есть кнопа "предпросмотр".
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения