Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Atmega8L, режим энергосбережения(+)

Отправлено AlHakim 05 сентября 2007 г. 10:54


есть устройство, в котором требует организовать возможность поддержки работы контроллера на 2-3 секунды, сейчас удается, с помошью ниже приведенного кода, обеспечить время работы порядка 1сек.

Контроллер запитан от LDO (LD1117S33C), на входе стоит LDO кондер на 470мкФ.

Что я не так делаю?

 
//
// SLEEP. Спи, тебе говорят !!!
//
MCUCR |= 0x20; // POWER DOWN -> вылетаем по WatchDog
MCUCR |= 0x80; // Sleep

//
// отключаем управление светодиодами
//
PORTB |= BIT(ThisVCC);
PORTB |= BIT(LedNorma)|BIT(LedAkkum);
PORTB &=~BIT(OnAcc); // Аккумулятор разряжен - надо выключить

//
// несмотря на Power Down сами отключаем компоратор и АЦП и TWI
//
ACSR |= BIT(ACD);
ADCSR &=~ BIT(ADEN);
TWCR &= 0x04; // бит TWEN

//
// Запрещаем преывания (в надежде что контроллер прерывания отключится :)) и WDT
//
SREG &=~ 0x80;
WDTCR &=~ BIT(WDE);


asm("nop");
asm("nop");

PORTC |= BIT(SHORT); // замкнули линию
asm("sleep");



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
отымите от 2 единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru