Встраеваемый ИК пульт управления (PIC+Atmel=проблема)
Re: Встраеваемый ИК пульт управления (PIC+Atmel=проблема)
Просто мне кажется, что в sleep mode намного дольше хватало бы батарей питания. Можно же его в существующий код внести, как поправку? На Си примерно понимаю как :
// Инициализация режима сна
set_sleep_mode (SLEEP_MODE_PWR_DOWN);
while(1)
{
sleep_enable(); // разрешение режима сна
sleep_cpu(); // активация режима сна
}
На асме не знаю как... =(
// Инициализация режима сна
set_sleep_mode (SLEEP_MODE_PWR_DOWN);
while(1)
{
sleep_enable(); // разрешение режима сна
sleep_cpu(); // активация режима сна
}
На асме не знаю как... =(
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Встраеваемый ИК пульт управления (PIC+Atmel=проблема)
Попробуй как-то так:
1) добавляем в шапку
.def Sleep_Counter=r22
2) после org 0 вставляем
3) Вот этот кусок:
меняем на вот такой:
а вот этот:
вот на такой:
1) добавляем в шапку
.def Sleep_Counter=r22
2) после org 0 вставляем
Код: Выделить всё
rjmp Init ; reset
reti ; INT0
reti ; Pin Change
reti ; Timer (переход к обработч.прерывания от таймера)
reti ; EEPROM
reti ; comparator
reti ; timer compare match A
reti ; timer compare match B
reti ; watchdog
reti ; ADC
Код: Выделить всё
Scan: sbis PINB,4 ; если на входе PB4 низкий уровень - нажата КН1
rjmp Tx_CMD1
sbis PINB,2 ; если на входе PB2 низкий уровень - нажата КН2
rjmp Tx_CMD2
sbis PINB,0 ; если на входе PB0 низкий уровень - нажата КН3
rjmp Tx_CMD3
sbis PINB,1 ; если на входе PB1 низкий уровень - нажата КН4
rjmp Tx_CMD4
sbr MBC,0b00100000 ; установить toggle bit в 1 (первое нажатие)
rjmp Scan
Код: Выделить всё
ldi w, 0b00010111
out PCMSK,w
ldi w,0b00100000
out GIMSK,w
Scan: sei
ldi Sleep_Counter, 5 ; устанавливаем счётчик на 5 сканов (если за это время ничего не произойдёт - уснём)
Test_Sleep:
dec Sleep_Counter
brne Test_Buttons ; если ещё не сделали 5 сканов - продолжаем сканить кнопки
ldi w,0b00100000
out MCUCR,w ; разрешаем засыпание
sleep ; засыпаем
clr w
out MCUCR,w ; запрещаем засыпания
ldi Sleep_Counter, 5 ; устанавливаем счётчик на 5 сканов
Test_Buttons:
sbis PINB,4 ; если на входе PB4 низкий уровень - нажата КН1
rjmp Tx_CMD1
sbis PINB,2 ; если на входе PB2 низкий уровень - нажата КН2
rjmp Tx_CMD2
sbis PINB,0 ; если на входе PB0 низкий уровень - нажата КН3
rjmp Tx_CMD3
sbis PINB,1 ; если на входе PB1 низкий уровень - нажата КН4
rjmp Tx_CMD4
sbr MBC,0b00100000 ; установить toggle bit в 1 (первое нажатие)
rjmp Test_Sleep
Код: Выделить всё
TxRC: sbrc MBC,7 ; Startbit 1. Если бит равен 1 - выполняется
Код: Выделить всё
TxRC: cli
sbrc MBC,7 ; Startbit 1. Если бит равен 1 - выполняется
- Вложения
-
- rc-5_s.zip
- скомпиленная прошивка, режим IDLE
- (511 байт) 541 скачивание
С уважением, администрация сайта.
Re: Встраеваемый ИК пульт управления (PIC+Atmel=проблема)
Спасибо огромное!!! Повставлял ваши куски кода. Компильнул в АВР студио. Пока полет нормальный. Поставил в холдер новую баталерку. Будем смотреть, как в sleep mode энергия расходуется.
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Встраеваемый ИК пульт управления (PIC+Atmel=проблема)
Интересно, кстати, работает или нет. Можешь потребление в sleep режиме измерить и не в sleep режиме (с какой-нибудь нажатой кнопкой).
С уважением, администрация сайта.
Re: Встраеваемый ИК пульт управления (PIC+Atmel=проблема)
Все работает!
Потребление в sleep mode:
режим покоя - 800 мкА;
кнопка нажата - 5,5 мА (резистор в цепи ИК-диода я уменьшил до 22 Ом);
*******************************************************************************************************
Потребление с прошивкой RC-5
режим покоя - 3 мА;
кнопка нажата - 5,5 мА (резистор в цепи ИК-диода я уменьшил до 22 Ом);
*******************************************************************************************************
Вот такие мои замеры. Залил прошиву с sleep mode, ибо она рациональнее, тем более под батарейку CR2032.
Потребление в sleep mode:
режим покоя - 800 мкА;
кнопка нажата - 5,5 мА (резистор в цепи ИК-диода я уменьшил до 22 Ом);
*******************************************************************************************************
Потребление с прошивкой RC-5
режим покоя - 3 мА;
кнопка нажата - 5,5 мА (резистор в цепи ИК-диода я уменьшил до 22 Ом);
*******************************************************************************************************
Вот такие мои замеры. Залил прошиву с sleep mode, ибо она рациональнее, тем более под батарейку CR2032.
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Встраеваемый ИК пульт управления (PIC+Atmel=проблема)
То есть прошивка со sleep режимом в покое жрёт 800 мкА, а без него в покое жрёт 3 мА? так?
Кстати, это у нас получился sleep-режим, который называется IDLE, когда только CPU останавливается.
А если изменить этот кусок:
на вот такой:
то получится режим Power Down и потребление должно стать ещё меньше, поскольку тут даже генератор стопится и вообще все модули, кроме асинхронных...
Кстати, это у нас получился sleep-режим, который называется IDLE, когда только CPU останавливается.
А если изменить этот кусок:
Код: Выделить всё
ldi w,0b00100000
out MCUCR,w ; разрешаем засыпание
sleep ; засыпаем
Код: Выделить всё
ldi w,0b00110000 ; режим Power Down
out MCUCR,w ; разрешаем засыпание
sleep ; засыпаем
С уважением, администрация сайта.
Re: Встраеваемый ИК пульт управления (PIC+Atmel=проблема)
Совершенно верно. Попробую намедни перекомпильнуть. Можете мне дать исходник, я подправлю? Затем снова проведу замеры.rhf-admin писал(а):То есть прошивка со sleep режимом в покое жрёт 800 мкА, а без него в покое жрёт 3 мА? так?
Re: Встраеваемый ИК пульт управления (PIC+Atmel=проблема)
Прикрепляю свою печатную плату в формате sLayot5. Может кому пригодится.
- Вложения
-
- Remote_Control.rar
- (7.36 КБ) 538 скачиваний
- rhf-admin
- администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
- Сообщения: 3060
- Зарегистрирован: 25 авг 2009, 23:19
- Откуда: Уфа
- Контактная информация:
Re: Встраеваемый ИК пульт управления (PIC+Atmel=проблема)
Вот исправленный исходник и перекомпиленная прошивка:
С уважением, администрация сайта.