Использую attiny13, к int0 подключена кнопка, шим на OCR0A. МК находится в режиме PW_DOWN_MODE, просыпается только по INT0, соответственно. Когда просыпается: 1. отключаю прерывание по int0 2. запускается ШИМ(OCR0A = 200) 3. пока кнопка нажата бесконечный while 4. OCR0A = 0; 5. включаю прерывание по INT0, прерывание заканчивается и МК снова засыпает Проблема в том, что после того как он засыпает, на ножке ШИМ случайным образом появляется логическая единица. Я в чем-то ошибся и надо порт как-то к земле притягивать? В моем понимании вывод ШИМ должен быть прижат к земле во сне
перед уходом в сон ты САМ должен отключить ножку от ШИМ и подать на нее ноль - если тебе там нужен ноль. а так, в каком состоянии находилась ШИМ, в таком она и остается.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Starichok51, да вроде случайное состояние пина в принципе не очень хорошо. У меня там висит транзистор, который рулит движком и упор в низкое энергопотребление
по типовым характеристикам из даташита 3 мА - это активный режим, а не сон. сейчас посмотрел твой текст в первом посте. нехорошо делать OCR0A = 0; зачем таймеру создавать конфликтную ситуацию. запиши в main раз и навсегда OCR0A = 200; а перед уходом в сон отсоедини ножку от ШИМ и запиши на эту ножку ноль. а при выходе из сна опять подсоедини ножку к ШИМ.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
daaar Попробуйте так DDRB <- 0xFD PORTB <- 0x22 ACSR <- ACD MCUCR <- 1<<SE|1<<SM1;|0<<SM0 Думаю, что после разрешения SLEEP POWER DOWN конструкция while, в том как есть сейчас, приведет к зависону.
Даташит говорит об обратном. Ножки на вход надо оставлять только те, которые "слушают" или по-другому никак. Вот только она должна быть подтянута к шине питания или к нулевой шине. Иначе входной шум будет "дёргать" входной триггер Шмитта, что негативно будет сказываться на энергопотреблении. А в нуле ножка на выход или в единице, на энергопотреблениии это не сказывается никак.
ну как это не сказывается? если ножка осталась в единице и к ней подключена какая-то нагрузка, то нагрузка и во время сна будет потреблять ток от питания через ножку. и наоборот, если нагрузка подключена к питанию (+5В) и ножка осталась в нуле, то тоже от питания будет потребление тока.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
речь шла про конкретный выход, а не нагрузку. Либо писатель не русский и не смог донести правильно свою сакральную мысль. Я же говорю - чтобы добиться потребления 1 мкА и менее, необходимо очень тщательно прорабатывать схемотехнику и программу. На от,бись не взлетит.
Выводы: R - на красный светодиод, G на зеленый, BTN - кнопка, LED - вывод подключен к полевику которые зажигает ленту от 12 вольт, ADC - из схемы видно куда подключен
с такой схемой о powerdown можно не беспокоиться. Здесь и без этого хватает токопотребляющих цепей.
Добавлено after 1 minute 49 seconds: Re: Не определенное состояние пина после ухода в глубокий сон кстати, в делителе напряжения BAT верхний резистор должен быть 10к. Так рекомендует даташит. Иначе измерения будут нелинейными.
LDO - это он на бумаге. А по факту на нем падает 7 вольт. LDO - не более 1 вольта. Референс можно брать абсолютно любой удобный. Только обязательно помнить - блок АЦП перед сном обязательно выключать ручками!!! В этом блоке есть аналоговые цепи и при потере тактирования они не отключаются от шины питания, а продолжают кушать ток.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения