Страница 1 из 1
спящий режим attiny2313a
Добавлено: Вт янв 01, 2013 13:32:15
Kezoox
сразу прошу прощения за возможный повтор вопроса -может его уже разжевали тут но поиск толком ничего не дал
вопрос в следующем
спящий режим не работает так как описано ткните gj;пожалуста пальцем что делается не так
авр студио 4.18
протеус кнопки на инт0-1 порт Б мигает светодиодами для наглядности
тинька не просыпается из PWR_DOWN mcucr 0x35
из режима Холостой-Idle просыпается от int0-1 mcucr 0x25
.include "tn2313def.inc"
.LIST
.def temp=r16;
.cseg;
.org 0x0000
rjmp reset
.org 0x0001
rjmp llll
.org 0x0002
rjmp llll
reset:
ldi temp, RAMEND;
out SPL,temp;
ldi temp,0xff;
out DDRB,temp
out PORTB,temp;
out PORTD,temp;
ldi temp,0x35
out mcucr,temp
ldi temp,0xc8
out gimsk,temp
sei
;======
main:
inc temp
out portb,temp
sleep
;======
rjmp main
llll:
reti

Re: спящий режим attiny2313a
Добавлено: Вт янв 01, 2013 15:22:15
brutal
В протеусе очень криво сделана эмуляция спящих режимов для tiny2313.
Используйте аппаратную отладку
Re: спящий режим attiny2313a
Добавлено: Вт янв 01, 2013 16:13:01
Kezoox
одним словом в теории должно работать ?но в студио тоже не работает повер доун если биты порта вручную менять

Re: спящий режим attiny2313a
Добавлено: Вт янв 01, 2013 19:03:30
BOB51
Режимы энергосбережения требуют оченть внимательного и дотошного изучения документации МК не только по самому режиму...., но и по всей, установленной в МК начинке (относительно начальной инициализации). Подобные "сложные" режимы могут частично или полностью не поддерживаться симулятором (см. help конкретной IDE !!!).
Кстати, советую заменить 4.18 на 4.19
http://www.atmel.com/System/BaseForm.as ... m:26-17924

Re: спящий режим attiny2313a
Добавлено: Вт янв 01, 2013 22:05:38
YS
одним словом в теории должно работать ?
На практике должно работать.

В симуляторах подобные "неосновные" режимы бывают реализованы криво.
Re: спящий режим attiny2313a
Добавлено: Вт янв 01, 2013 22:49:55
Kezoox
загрузил все в плату к сожалению не работает

повер доун
убираю бит на холостой режим -все работает просыпается от инт0 ,ставлю бит см0 -засыпает и не просыпается
короче непонятки

Re: спящий режим attiny2313a
Добавлено: Ср янв 02, 2013 01:16:15
Ser60
Вот выреджка из секции External Interrupt в ДШ:
Note that recognition of falling or rising edge interrupts on INT0 and INT1 requires the presence of an I/O clock, described in “Clock Systems and their Distribution” on page 22. Low level interrupt on INT0 and INT1 is detected asynchronously. This implies that this interrupt can be used for waking the part from sleep modes other than Idle mode. The I/O clock is halted in all sleep modes except Idle mode.
Re: спящий режим attiny2313a
Добавлено: Ср янв 02, 2013 01:25:13
Jack_A
Ser60 писал(а):Вот выреджка из секции External Interrupt в ДШ:
Первый раз встречаю такую опкису

Re: спящий режим attiny2313a
Добавлено: Ср янв 02, 2013 15:05:27
akl
Kezoox Попробуйте так, в предположении, что на PD2(INT0) и PD3(INT1) установлены кнопки на общий провод и светики переключаются при отпускании кнопки.
Спойлер
Код: Выделить всё
.include "tn2313def.inc"
.LIST
.def temp=r16;
.cseg;
.org 0x0000
rjmp reset
.org 0x0001
rjmp _0000
.org 0x0002
rjmp _1111
reset:
ldi temp, RAMEND;
out SPL,temp;
ldi temp,0xff;
out DDRB,temp
out PORTB,temp;
out PORTD,temp;
;*************************************************
OUT DDRD,R16
LDI R16,$0C
OUT PORTD,R16
CLR R16
OUT DDRD,R16
LDI R20,$C0
CLR R21
;*************************************************
ldi temp,0x30
;ldi temp,0x35
out mcucr,temp
OUT GIMSK,R20
;ldi temp,0xc8
;out gimsk,temp
sei
;======
main:
inc temp
out portb,temp
sleep
;======
rjmp main
_0000:
OUT GIMSK,R21 ; запретить прерывания INT0, INT1
SBIS PIND,2
RJMP _0000
OUT GIMSK,R20
OUT EIFR,R20 ; сбросить флаги
reti
_1111:
OUT GIMSK,R21 ; запретить прерывания INT0, INT1
SBIS PIND,3
RJMP _1111
OUT GIMSK,R20
OUT EIFR,R20 ; сбросить флаги
reti
18:26
Переписал чтобы состояние индикации менялось при нажатии кнопки. По мне, так естественнее.
Спойлер
Код: Выделить всё
.include "tn2313def.inc"
.LIST
.def temp=r16;
.cseg;
.org 0x0000
rjmp reset
.org 0x0001
NOP
.org 0x0002
RCALL DELAY
RET
reset:
ldi temp, RAMEND;
out SPL,temp;
ldi temp,0xff;
out DDRB,temp
out PORTB,temp;
out PORTD,temp;
;*************************************************
OUT DDRD,R16
LDI R18,$0C
OUT PORTD,R18
CLR R16
OUT DDRD,R16
LDI R20,$C0
CLR R0
;*************************************************
T0:
;ldi temp,0x30
;ldi temp,0x35
LDI R16,$30
OUT MCUCR,R16
;ldi temp,0xc8
;out gimsk,temp
OUT GIMSK,R20
OUT EIFR,R20 ; ñáðîñèòü ôëàãè
SEI
;======
MAIN:
SLEEP
INC R0
OUT PORTB,R0
T1:
IN R19,PIND
ANDI R19,0b00001100
CPSE R19,R18
RJMP T1
RJMP T0
;main:
;inc temp
;out portb,temp
;sleep
;======
;rjmp main
DELAY:
CLR YH
CLR YL
W_DEL:
SBIW YL,1
BRNE W_DEL
RET
Re: спящий режим attiny2313a
Добавлено: Пн янв 07, 2013 01:13:22
Kezoox
дело не в программе ,прога лиш для того чтоб было как то видно просыпание которого не происходит
не работает он у меня
я уже так сказать забил на повер доун в рабочей плате -поставил холостой режим с которым все просыпается
Re: спящий режим attiny2313a
Добавлено: Пн янв 07, 2013 04:52:31
zero648
Kezoox, ключ находится в этих строках, чтобы работал повер-даун:
LDI R16,$30
OUT MCUCR,R16
Re: спящий режим attiny2313a
Добавлено: Ср янв 09, 2013 19:06:18
Kezoox
а на условия сробатывания забить чтоль?

Re: спящий режим attiny2313a
Добавлено: Чт янв 10, 2013 07:02:30
akl
А у Вас нет другого выхода. Посмотрите DS на ATtiny2313 и увидите, что выход из Power-down по фронту/спаду на INT0 (INT1) не предусмотрен.
Re: спящий режим attiny2313a
Добавлено: Чт янв 10, 2013 08:15:22
SergeBS
akl писал(а):А у Вас нет другого выхода. Посмотрите DS на ATtiny2313 и увидите, что выход из Power-down по фронту/спаду на INT0 (INT1) не предусмотрен.
Предусмотрен и работает. Но только по 1 выводу - INT0.
стр.31:
Power-down Mode
When the SM1..0 bits are written to 01 or 11, the SLEEP instruction makes the MCU enter
Power-down mode. In this mode, the external Oscillator is stopped, while the external interrupts,
the USI start condition detection, and the Watchdog continue operating (if enabled). Only an
External Reset, a Watchdog Reset, a Brown-out Reset, USI start condition interrupt, an external
level interrupt on INT0, or a pin change interrupt can wake up the MCU. This sleep mode basi-
cally halts all generated clocks, allowing operation of asynchronous modules only.
Пример применения: Кухонный таймер "Чтота"
http://radiokot.ru/circuit/digital/home/59/
Re: спящий режим attiny2313a
Добавлено: Чт янв 10, 2013 09:08:16
akl
Не убедили! Посмотрите приведенный Вами пример
Спойлер
Код: Выделить всё
ldi reg,0b01110010 ;(0 колесо_вх)
out ddrD,reg ;(1 свет_в_Фотопару) (2 ONN-OFF(INT_подтянут))
;(3 колесо(INT)
;((4 6 Цифры Ш и Л.) (5 пищелка)
ldi reg,0b01010110 ;-----Кажись 4 и 6 нафик нинада (но пусть, раз работает)
out portD,reg ;подтянул он/офф(при киданьи на минус сработает)
;... (включил напругу ИК-светику)(и цифры, чтоб кра)
;-------- ПЕРЕМЕННЫЕ
ldi Nolik,0
cbr flajki,0b11111011 ;7- (СОН) ;6- (визг серены) ;5- (Щелчёк) ;4- (Секундомер) ;3- (мелодия)
;2- (0 или 99) ;1-(звон гимна)
;-------- СОН в режиме @повер довн@.
ldi reg,0b00110000
out MCUCR,reg
Кстати, в последней редакции DS на
ATtiny2313A/4313 уже можно и из INT1 выходить.
Re: спящий режим attiny2313a
Добавлено: Чт янв 10, 2013 11:20:41
SergeBS
akl писал(а):Не убедили! Посмотрите приведенный Вами пример
Ну и что там не так? PowerDown - есть. Кнопкой разбудится. Я мысль насчет крутилки - регулятора времени подцепил и сделал похожее, но у меня "Кукарачу" играет.
Re: спящий режим attiny2313a
Добавлено: Чт янв 10, 2013 11:55:37
akl
В "Чтота" командой
Код: Выделить всё
;-------- СОН в режиме @повер довн@.
ldi reg,0b00110000
out MCUCR,reg
подготавливается разрешение работы в режиме Power-down и выход из него по низкому уровню на INT0.
Kezoox же пытается выйти по фронту/спаду сигнала, а это неправильно.
Re: спящий режим attiny2313a
Добавлено: Чт янв 10, 2013 17:51:41
Ser60
akl прав, и приведенная мною выше цитата из ДШ подтверждает его слова. Но почему-то ее все проигнорировали.
Re: спящий режим attiny2313a
Добавлено: Чт янв 10, 2013 18:15:06
SergeBS
Ser60 писал(а):akl прав, и приведенная мною выше цитата из ДШ подтверждает его слова. Но почему-то ее все проигнорировали.
ОК. Ткнули пальцем - теперь ясно. Молодцы оба.

Re: спящий режим attiny2313a
Добавлено: Сб янв 12, 2013 00:31:53
Kezoox
спасибо
