Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 06.02.2011, 00:55   #11
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: Не просыпается tiny2313 по INTO

Сообщение от TechMike Посмотреть сообщение
// вгоняем МК в POWER-DOWN
cli(); // зарещаем прерывания глобально
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sei(); // разрешаем прерывания глобально
sleep_mode();
_delay_ms(20);

PORTD ^= 0b00010000;
_delay_ms(800);
_delay_ms(800);
PORTD ^= 0b00010000;

}
Вы отправляете контроллер спать разве эта часть кода когда нибудь выполнится?

_delay_ms(20);

PORTD ^= 0b00010000;
_delay_ms(800);
_delay_ms(800);
PORTD ^= 0b00010000;

}


PINB=0b00000000; // выводим на все выходы PORTB 0
PIND=0b00000000; // выводим на все выходы PORTD 0
PINA=0b00000000; // выводим на все выходы PORTD 0

Регистры PINx доступны только для чтения, а PORTx и DDRx для чтения/записи
Так что ни чего вы при такой записи на них не выводите

Пишете вы в avrgcc и для сторожевого таймера достаточно подключить библиотеку #include ‹avr/wdt.h›
и в коде всавить wdt_enable(WDTO_1S); и не забываем сбрасывать wdt_reset();
Реклама:
harchenko_pavel вне форума  
Непрочитано 06.02.2011, 01:03   #12
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: Не просыпается tiny2313 по INTO

Да и не забудьте, что в режиме power down отключается тактовый генератор и для пробуждения по внешнему прерыванию по низкому уровню длительность сигнала на входе INT0 должна быть не менее времени запуска контроллера
harchenko_pavel вне форума  
Непрочитано 06.02.2011, 01:03   #13
kittec
Гражданин KAZUS.RU
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: Не просыпается tiny2313 по INTO

Сообщение от harchenko_pavel Посмотреть сообщение
разве эта часть кода когда нибудь выполнится?
Вообще то сюда мы должны попасть после обработки INT0 по команде RETI.
К сожалению я не понимаю С, пишу на asm.
kittec вне форума  
Непрочитано 06.02.2011, 01:24   #14
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: Не просыпается tiny2313 по INTO

Сообщение от kittec Посмотреть сообщение
Вообще то сюда мы должны попасть после обработки INT0 по команде RETI.
Сори на прав: после выполнения команды SLEEP выход из режима сна происходит при возникновении разрешенного прерывания. В этом случае, помимо времени старта микроконтроллер приостанавливается на 4 машинных цикла, выполняет процедуру обработки прерывания и продолжает выполнять команды следующие за SLEEP. Содержимое файла регистров и статического ОЗУ остается неизменным после выхода из режима сна.
Значит этот участок кода выполнится только при возникновении прерывания, в случае срабатывания сторожевого таймера начнем сначала.
Если определяем источник сброса то можем пропустить ненужный участок
if ((MCUCSR & (1 ‹‹ WDRF))!=0)
{
//это сброс по wdt
//этот участок кода мы выполнять не будем
}
harchenko_pavel вне форума  
Непрочитано 06.02.2011, 01:49   #15
kittec
Гражданин KAZUS.RU
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: Не просыпается tiny2313 по INTO

Сообщение от TechMike Посмотреть сообщение
если в прерывании INT0 не вырубать его возникновение (чтобы зря его не вызывать) то все функционирует как надо.
Ерунда какая то, флаг I регистра SREG аппаратно сбрасывается сразу после вызова соответствующей процедуры обработки прерывания и устанавливается после команды RETI. И никаких "вырубаний " и CLI внутри процедуры не надо.
kittec вне форума  
Непрочитано 06.02.2011, 01:53   #16
kittec
Гражданин KAZUS.RU
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: Не просыпается tiny2313 по INTO

Сообщение от harchenko_pavel Посмотреть сообщение
Сори на прав:
Не понял Вас, уважаемый. Зто "смотри на право " или "сорри не прав" ?
kittec вне форума  
Непрочитано 06.02.2011, 03:47   #17
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Не просыпается tiny2313 по INTO

Код:
EIFR=0; // External Interrupt Flag 0 Disable
internalINT=1;
Зачем это, если не секрет? При выходе из прерывания оно само всё сбросит.

А вообще, контроллер точно выполняет то, что Вы ему написали. Он выполняет вот это:
Код:
// сработали сигнальные входы и пробуждение по INT0, нужно выключить прерывание INT0
GIMSK=0;  // External Interrupt Request 0 Disable
EIFR=0; // External Interrupt Flag 0 Disable
internalINT=1;
и дальше честно спит.
Как же он будет выполнять отключенное прерывание?
Либо не отключайте, либо не забывайте после выполнения реакции на прерывание снова включить его.

Последний раз редактировалось omercury; 06.02.2011 в 04:24.
omercury вне форума  
Непрочитано 06.02.2011, 10:50   #18
mironov
Вид на жительство
 
Регистрация: 07.03.2005
Сообщений: 300
Сказал спасибо: 13
Сказали Спасибо 117 раз(а) в 62 сообщении(ях)
mironov на пути к лучшему
По умолчанию Re: Не просыпается tiny2313 по INTO

"Столкнулся со странной проблемой выхода tiny2313 из powerdown"
Скорее всего ничего и не выйдет. Сколько не бился на макете, выход из powerdown не получился. Менял и схему и программу. По моему в tiny2313 работает только idle Так на нем и остановился. Ток потребления 300 мкА. Посчитал, что для пульта сойдет.
mironov вне форума  
Непрочитано 06.02.2011, 11:12   #19
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Не просыпается tiny2313 по INTO

В тинях2313 приекрасно работает ИНТ0.
В крайнем случае есть ПЦИНТы
Миниатюры:
Нажмите на изображение для увеличения
Название: 0_2.PNG
Просмотров: 59
Размер:	71.9 Кб
ID:	17879  
niXto вне форума  
Непрочитано 06.02.2011, 11:47   #20
kittec
Гражданин KAZUS.RU
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: Не просыпается tiny2313 по INTO

Сообщение от mironov Посмотреть сообщение
По моему в tiny2313 работает только idle Так на нем и остановился.
Неправда Ваша, tiny2313 прекрасно выходит из power_down по INTO. Могу скинуть пример, можно для протеуса.
kittec вне форума  
Закрытая тема

Закладки

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WH1602 и Tiny2313 maruda_v Микроконтроллеры, АЦП, память и т.д 100 01.05.2013 13:37
Часы дла ВАЗ классики на tiny2313 VladimirMal Микроконтроллеры, АЦП, память и т.д 8 17.10.2011 14:31


Часовой пояс GMT +4, время: 00:24.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot