Круто, однако
а я то думал прошивки разные, а оно вон как все решается......
Я его полностью поддерживаю.
Программирую на Fuse AtmelAVR.
На данном этапе да. Мега8 есть. Да еще и как-бы в DIP корпусе, т.е плату можно не разводить а взять готовую с изи-электроникс. Компилировать ничего не надо, все готовое есть. Т.е работы на 2 порядка меньше, травануть печатку(уже) припаять мк, и десяткой деталей, и прошить.oleg63m писал(а):ну и? отпаял и все проблемы решились?
Круто, однако
а я то думал прошивки разные, а оно вон как все решается......
Код: Выделить всё
DDRB=0; //все ноги делаем входами.
DIDR0=0b101000; //убираем цифровые входы с неиспользуемых ног для экономии энергии
PORTB=0;//Теперь на кнопку питания никакой сингал не подается, ни плюс ни земля.
PCMSK=(1<<pin_5vUSB)|(1<<pin_PBut);//разрешаем выход из POWER-DOWN при изменении уровня сигнала на входах кнопки питания и юсб
sbi(GIMSK,PCIE); //Enable Pin Change Interrupt.
sei(); // разрешаем прерывания глобально
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_mode();//тут мы уснулиКороче нужно убедиться,чтобы низкий уровень случайно не оказался на ноге INT0, чтобы мк не проснулся.Подключить ногу к потягивающему внешне.Note that if a level triggered interrupt is used for wake-up from Power-down, the required level
must be held long enough for the MCU to complete the wake-up to trigger the level interrupt. If
the level disappears before the end of the Start-up Time, the MCU will still wake up, but no inter-
rupt will be generated.
Код: Выделить всё
DIDR0=0b101000; //убираем цифровые входы с неиспользуемых ног для экономии энергииНо лучше если использовать вне спящего режима.The signal denoted SLEEP in the figure, is set by the MCU Sleep
Controller in Power-down mode, Power-save mode, and Standby mode to avoid high power
consumption if some input signals are left floating, or have an analog signal level close to V CC /2.
SLEEP is overridden for port pins enabled as external interrupt pins. If the external interrupt
request is not enabled, SLEEP is active also for these pins.
Но ведь я же вроде как использую прерывания не INT0, а pin change ( sbi(GIMSK,PCIE); ). Если судить по протеусу (а там видно что МК ушел в спячку когда загрузка ЦПУ=0) МК уходит в сон и при 0 и при 1 на PB0 (инт0).vitalik_1984 писал(а):Короче нужно убедиться,чтобы низкий уровень случайно не оказался на ноге INT0, чтобы мк не проснулся.Подключить ногу к потягивающему внешне.
А разве молотит в power_down? На сколько я знаю в power_down ЦПУ отключен. Вроде частоту ЦПУ понижают для уменьшения тока во время работы, а для режима power_down тактовая частота ЦПУ не влияет на потребление. Или я не прав?По умолчанию аж 9Мг, немало.пусть даже делится, но сам то молотит!
В принцпе можно запитаться не напрямую от аккума, а от точки +3.3В, присутствующих постоянно.Можно перед ним еще поставить LOW DROP регулятор
Ну я это и написал выше. Посмотрел на графике в даташите - на 4 вольтах BOD потребляет всего 23мкА. Не так уж и много уменьшим.BOD, 1W по любому выключать.

Дык не "почти не встречаются", а таки не встречаются вообще...Кто автор схемы? У него хоть одна самостоятельно разработанная и работающая конструкция есть?Dmittry писал(а):Интересует данная схема сброса, почему они почти не встречаются, а ставят просто RC цепочку?
Инверторы для формирования импульса и некоторой фильтрации шума, обычно туда триггеры Шмитта ставят с инверсией. Схема справа позволяет не просто сделать сброс, а с помощью импульса определенной длительности.
Ну да, в теории у него всё красиво. Вот только на практике контроллеры обычно нулём сбрасываются (соединение с землёй - сброс), а тут в рабочем режиме на выходе ноль будет. Контроллер просто не будет работать.человек преподает в университетах )
R1 должен быть на плюс, а не на минус.Интересует данная схема сброса, почему они почти не встречаются, а ставят просто RC цепочку?
Во многих случаях этого было достаточно.т.е. такой цепочки для сброса по нажатию достаточно?
"