|
0 / 0 / 0
Регистрация: 25.10.2010
Сообщений: 243
|
|
включение AVR с кнопки без фиксации18.04.2015, 04:06. Показов 31107. Ответов 45
Метки нет (Все метки)
какой план действий должен быть?
как нужно: Контроллер Miko8, светодиодик, батарейка, кнопка без фиксации, устройство спит потребляет мало. После нажатия на кнопку контроллер проснулся помигал диодиком и опять уснул. Желательно рабочий пример. Как у гугли спросить не сообразил.
0
|
|
| 18.04.2015, 04:06 | |
|
Ответы с готовыми решениями:
45
Обработка нажатия кнопки без фиксации Включение/выключение на одной кнопке без фиксации. Как? Hp ProBook 450 g4 включение без кнопки |
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
| 03.05.2015, 10:34 | |
|
Любая программа - это конечный автомат. Память и регистры - это и есть состояние КА.
Шах и мат, аметисты )
0
|
|
|
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 392
|
||
| 03.05.2015, 10:36 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 25.10.2010
Сообщений: 243
|
||
| 03.05.2015, 10:39 | ||
(1<<SE)разрешаем спать(0<<SM2)|(1<<SM1)|(0<<SM0)выставлен о шут даун. как настроить регистр чтобы АЦП считалось отключенным? #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> int migalka =0; int main(void) { ADMUX |= (1<<REFS1)|(0<<REFS0)|(0<<ADLAR)|(1<<MUX 3)|(1<<MUX2)|(1<<MUX1)|(1<<MUX0); ACSR |= (0<<ACD)|(0<<ACBG)|(1<<ACIE)|(0<<ACIC)|( 1<<ACIS1)|(1<<ACIS0); DDRC |= (0<<PC6)|(0<<PC5)|(0<<PC4)|(0<<PC3)|(0<< PC2)|(1<<PC1)|(0<<PC0); PORTC |= (0<<PC6)|(0<<PC5)|(0<<PC4)|(0<<PC3)|(0<< PC2)|(0<<PC1)|(0<<PC0); // Настройка спящего режима | INT1 INT1 INT0 INT0 MCUCR |= (1<<SE)|(0<<SM2)|(1<<SM1)|(0<<SM0)|(0<<I SC11)|(0<<ISC10)|(0<<ISC01)|(0<<ISC00); GIFR |= (1<<INTF0)|(0<<INTF1); GICR |= (1<<INT0)|(0<<INT1); while(migalka < 5) { PORTC|= (1<<PC1); _delay_ms(400); PORTC &= ~(1<<PC1); _delay_ms(400); ++migalka; } sei(); while(1) { asm ("sleep"); } }
0
|
||
|
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 392
|
||
| 03.05.2015, 10:41 | ||
Во-вторых, КА описывается диаграммой состояний, а нормальная программа - блок-схемой.
0
|
||
|
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 392
|
||
| 03.05.2015, 10:47 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 879
|
||
| 03.05.2015, 10:56 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 901
|
||
| 03.05.2015, 11:05 | ||
Во-вторых, КА описывается диаграммой состояний, а нормальная программа - блок-схемой. конечное число состояний не может быть "разумным" или "неразумным". Число состояний - либо конечно, либо бесконечно. Тем более, программирование - это попытка минимизировать число состояний и переходов автомата. (а автоматизированное тестирование - как раз основывается на том, что число состояний (либо число путей) конечно и должно быть конечно) И блок-схема, и диаграмма переходов автомата описываются графом. Т.е. по сути это одно и то же, различия в реализации.
0
|
||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
|
||
| 03.05.2015, 11:10 | ||
Я не так давно писал программу для станка. Писал тщательно, отлаживал от и до. И когда я привез блок управление и установил его, по циклу работы оборудования не было НИ ОДНОГО ЗАМЕЧАНИЯ. Проект писался с активным использованием КА. Внести изменения, добавить что-то - ничего сложного. За счет использования КА программа строится как конструктор. Естественно, нужно тщательно продумывать все моменты, нюансы.
0
|
||
|
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
|
||||
| 03.05.2015, 11:19 | ||||
0
|
||||
|
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
|
||
| 03.05.2015, 12:53 | ||
но тут смотря какая схема питания в моем примере светофора питания идет от повышающего преобразователя на mcp1640, пока МК спит он жрет свои положенные 40-60мкА а вот в адаптере ISP там у меня схема с переключением mcp1640 по входу ENABLE и фиксацией после нажатия с выхода МК, там потребление менее 1мкА но во втором случае этой кнопкой можно только включить, выключает МК по таймеру в у светофора кнопка работает и на включение и на выключение
0
|
||
|
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
|
||
| 03.05.2015, 12:58 | ||
главное "predefined state", т.е. нужно исключить случайные переключения входных каскадов то в ноль то в единицу эти переключения генерят большое динамическое потребление либо в режиме входа с внешней или внутренней подтяжкой либо режим выхода не использованные входы можно так сконфигурировать при инициализации, а не перед засыпанием кстати ваш цикл моргания с _delay() дает среднее потребление самого МК на уровне нескольких мА если _delay() заменить на сон в режиме IDLE, а временные задержки сделать на таймере, то среднее потребление сократится до нескольких сотен мкА на примере мой светофор при _delay потреблял 2мА в режиме моргания, а с таймерами и IDLE - 640мкА
0
|
||
|
0 / 0 / 0
Регистрация: 25.10.2010
Сообщений: 243
|
|||
| 04.05.2015, 03:49 | |||
0
|
|||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 04.05.2015, 12:17 | |
|
ещё можно вообще мк не запитывать изначально. питание - через p-mos. кнопкой замыкаем затвор на землю - мк включается и тоже замыкает затвор - на землю (самофиксация).
0
|
|
|
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
|
||
| 04.05.2015, 12:24 | ||
0
|
||
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 04.05.2015, 12:28 | |
|
ну эта подтяжка очень большой может быть - мегаомы. ну не нравится - можно n-mos доптранзистор для управления p-mos/
тут важен принцип - если надо максимально потребление снизить и полное снятие напряжения с мк допустимо, наверно так лучше. хотя, учитывая никакущее потребление современных мк, уже не уверен ps блн, а картинки что-то я и не заметил, или не открылись сразу, ну, значит зря написал
0
|
|
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
|
|
| 04.05.2015, 20:27 | |
|
Если это делать только ради одного светодиода, то пример я показал выше в обсуждении. Этот способ плох тем, что в delay МК тупо считает такты задержки и ничего больше не делает. Если в дальнейшем будет добавляться функционал то вы вплотную сталкиваетесь с тем, как разруливать все процессы, чтобы это у вас работало одновременно. К примеру, клавиатура, дисплей, какие-то исполнительные цепи. Начальный и неплохой толчок в этом направлении дает цикл статей Татарчевского. Настоятельно советую вам почитать эти статьи.
Вот вам проект. Видео. Частота кварца МК - 16 МГц. Примеры конечных автоматов, программных таймеров. По проекту вы увидите реализацию псевдопараллельности процессов. Помимо мигания светодиодами, можно заниматься еще кучей вещей. При условии, что будет соблюдаться подобный подход к модулям. Правила этого подхода: Модульность. Избегать долгих циклов. Если задача большая, разбивается на логические куски. Условиями, флагами, состояниями конечных автоматов. Итерация всех процессов в main должна упаковываться с запасом в системный тик. В данном случае 1 мс. Анализируем вашу задачу. Орган управления - кнопка. Индикация - светодиод. Отсчитывание временных интервалов. Кнопка - отдельный процесс. Мигание светодиодом - отдельный процесс. Теперь, как считать временные интервалы. Самый простой - delay. Есть способы с аппаратными таймерами. Вариантов реализации тут несколько. А если нам нужно будет отсчитывать несколько временных интервалов? А аппаратный таймер один, а остальные заняты? Решение - программные таймеры. Вариантов реализации тут много. Один из способов в моем примере. Хорошо, мы написали программу для кнопки, для светодиода. Есть таймеры. Тут наступает вопрос, как модулям взаимодействовать. Можно просто выставлять флажки, в модулях их проверять. И так далее и так далее. Способов много. Некоторые из них подробно описываются в цикле статей. В общем, читайте статьи, посмотрите мой пример. Пробуйте. Удачи! [63.53 Кб]
0
|
|
|
0 / 0 / 0
Регистрация: 25.10.2010
Сообщений: 243
|
|
| 06.05.2015, 02:03 | |
|
Отключил АЦП и получил 1мкА! Спасибо всем за помощь!
0
|
|
|
0 / 0 / 0
Регистрация: 19.11.2010
Сообщений: 788
|
|
| 06.05.2015, 04:05 | |
|
Какая конкретно проблема была с ресетом, лень читать про цикл статей Татарчевского в этом направлении?
0
|
|
|
0 / 0 / 0
Регистрация: 25.10.2010
Сообщений: 243
|
|||||||||||
| 26.05.2015, 11:47 | |||||||||||
|
Продолжая тему про сон, нашел такой пример сна, он работает но не стабильно много ложных срабатываний. Этот код работает даже без разрешения прерываний(sei()) в главной функции? Сейчас код целиком не могу выложить поскольку я не дома. как побороть ложные срабатывания? Еще в этом безобразии использую библиотеку для семисег. индикатора в ней так же используются прерывания.
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 879
|
||||||
| 26.05.2015, 13:57 | ||||||
|
Уснуть просто (Power-down Mode):
0
|
||||||
| 26.05.2015, 13:57 | |
|
Включение Windows без удержания кнопки на планшете
Включение компьютера Benq JoyBook A53 без кнопки Power
Кнопка без фиксации с задержкой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|