РАДИОСХЕМЫ



СТАРЫЙ ФОРУМ

Форум на ЭЛВО


РАДИОФОРУМЫ


СХЕМЫ И СТАТЬИ



  • Страница 2 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Архив - только для чтения
Драйвер для кемпингового фонаря на ATTiny13A
Сообщение # 11        
34kilowatt
аватар
  Постов: 75   ОК 
Схему переделал, подтянул кнопку к минусу внешним резистором, при нажатии замыкается на + питания.

Еще, вопрос: нужно ли сбрасывать флаг прерывания? Хотя само прерывание отключаю в обработчике.
Вот код:
Файлы: 4876557.jpg (128.1 Kb)
Сообщение # 12        
nolpofaze
аватар
  Постов: 442   Друзья 
Цитата 34kilowatt ()
Схему переделал, подтянул кнопку к минусу внешним резистором
а какая крайняя необходимость была в этом?

Цитата 34kilowatt ()
Еще, вопрос: нужно ли сбрасывать флаг прерывания?
флаг должен автоматически сбрасываться, при возврате из обработчика прерывания.
Сообщение # 13        
34kilowatt
аватар
  Постов: 75   ОК 
Чтобы батарею на кушал внутренний резистор. При переходе в спящий режим, на сколько я понял, состояния портов остаются неизменными, если был высокий уровень, то он так и останется после перехода в спячку, был подтянут резистор, то он так и останется подтянутым.
А так получается, что кратковременно замыкаем на + питания при нажатии. И выключенном состоянии к АКБ подключен только МК (делитель хочу подключать через полевик при включении).
Сообщение # 14        
nolpofaze
аватар
  Постов: 442   Друзья 
34kilowatt, батарею будет кушать, если будет течь ток через этот резистор (ну не считая, конечно, мизера в доли микроампера), т.е. в момент замыкания кнопки, так что, немедленный разряд батареи, через подтягивающий резистор, Вам не грозил.
В последнем варианте, программа заработала?
Сообщение # 15        
34kilowatt
аватар
  Постов: 75   ОК 
В принципе да, но в любом случае с железным резистором, думаю, надежнее будет. Также транзистор, который этот резистор подключает к + питания, все равно, но что-то ест. Хотя, если использовать железный, то тоже самое будет (короче шило на мыло).
Схема все равно не заработала, как хотел. Железки сейчас нет, но в протеусе сейчас повторяет работу в железе.
Добавил паузы для отладки - получилось, что постоянно уходит в сон и сразу выходит из него, хотя состояние порта 4 изменяться не должно. И так по кругу. Нажатие, судя по всему просто не успевает обработать (там есть задержка в 10мс).
Сообщение # 16        
nolpofaze
аватар
  Постов: 442   Друзья 
34kilowatt, а как у вас настроен MCUCR, по отношению к внешним прерываниям??? Надо бы даташит глянуть, в отношении ISCxx битов... А там у Вас 00, получаем прерывание, если на инте земля.
Бардак, в общем smile
Сообщение # 17        
msmmmm
аватар
  Постов: 891   Друзья 
34kilowatt, определись какое прерывание использовать будешь - PCINT или INT0. А то зачем-то включил INT0 (РВ1), и определил PCINT4 (РВ4).
Цитата 34kilowatt ()
с железным резистором, думаю, надежнее будет
И чем может оказаться ненадежным внутренний резистор 40кОм при 5В питания?
Цитата 34kilowatt ()
подтянул кнопку к минусу
Что в лоб, что по лбу. Подтягивающий резистор подключается к затвору мосфета и в статике не потребляет ничего. Как по мне - кнопка на общий лучше, хотя и не принципиально.
По поводу делителя для АЦП - на кой там внешний мосфет, если такой же уже встроен в порт?
Флаги, которые могут вызвать пробуждение, должны быть сброшены перед глобальным включением прерываний.
Сообщение # 18        
34kilowatt
аватар
  Постов: 75   ОК 
Ну да он у меня при выключении отключается и через резистор и обратно включенный диод там теоретически может быть ноль. Установил бит ISC01, теперь из сна не выходит... На кнопку на 4м порту не реагирует (правда пока только в протеусе).
P.S. Пока сообщение написал уже поста ответов появилось.
По поводу INT0 и PCINT нашел каком-то примере, потому и так написал...
В любом случае спасибо за помощь!
Сообщение # 19        
msmmmm
аватар
  Постов: 891   Друзья 
И еще, зачем писать конструкции типа:
MCUCR |= (1 << SM1); // power-down mode
MCUCR &= ~(1 << SM0); // power-down mode
MCUCR |= (1 << SE); // режим сна включен
Если все это легко заменяется на:

MCUCR = 1 << SE|1 << SM1; и все
Сообщение # 20        
nolpofaze
аватар
  Постов: 442   Друзья 
Из даташита: Когда PCIE включен (установлен в 1), то любое изменение на PCINT5...0 вызовут прерывание по вектору PCI, не по вектору INT0, как у Вас.

Добавлено (25.06.2019, 13:32)
---------------------------------------------
Короче, надо убрать бардак, добавить порядок biggrin
  • Страница 2 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск:

Внимание! Форум переехал на Tehnodium.ru



© 2010-2022 "Форум Радиосхемы". All Rights Reserved  Почта  PDA