Страница 1 из 1

Энергосбережение Avr mega16

Добавлено: Вс мар 02, 2014 15:41:21
Кинг
Неполучается настроить энергосбережение на mega16 во все режимы заходит но просыпается только из Idle. что я делаю не так?

Re: Энергосбережение Avr mega16

Добавлено: Вс мар 02, 2014 19:08:26
coredumped
Only an External Reset, a Watchdog Reset, a Brown-out Reset, a
Two-wire Serial Interface address match interrupt, an External level interrupt on INT0 or
INT1, or an External interrupt on INT2 can wake up the MCU.
Это цитата из даташит, который гласит, что при Power Down режиме пробуждение возможно только от level interrupt.
У Вас установлен Rising Edge Interrupt - вот поэтому и не работает.

Re: Энергосбережение Avr mega16

Добавлено: Пн мар 03, 2014 01:32:32
Кинг
переделал щас он выходит из спящего режима выполняет прерывание. но почемуто к основной программе не возвращается, бит SE я очистил в прерывании

Re: Энергосбережение Avr mega16

Добавлено: Пн мар 03, 2014 07:21:59
akl
По мне, лучше выходить из прерывания Power Down дождавшись стабильного тактирования, запретом INTx и с очищенным I-флагом, т.е. по RET.

Re: Энергосбережение Avr mega16

Добавлено: Пн мар 03, 2014 10:15:17
Кинг
и как это записать?

Re: Энергосбережение Avr mega16

Добавлено: Пн мар 03, 2014 11:46:52
akl
Для ATmega8515 (AT90S8515) вход в POWER DOWN по нажатию кнопки "OFF" и выход из него при следующем её нажатии/отпускании.
Спойлер

Код: Выделить всё

;************************************************
OFF2:
	CLR	R21
 	RCALL	DELAY

	 SBIS	PIND,2
 	RJMP 	OFF2

	OUT	TCCR0,ZH

	LDI	R16,$30
	OUT	MCUCR,R16
	LDI 	R16,$40
 	OUT	GIMSK,R16
	 LDI	R16,$C0
 	OUT	GIFR,R16

	 SEI

	SLEEP
 	NOP
;************************************************
;  Чтение состояния органов
;         управления
;************************************************
SCHIT:
	CLI
		
	LDI	R16,LOW(RAMEND)
	OUT	SPL,R16
	LDI	R16,HIGH(RAMEND)
	OUT	SPH,R16

	CLR	ZH
;***********************
;...............
;...............
;...............
;...............
	RJMP	SCHIT
;***********************
ISR0:
	CLR	ZH
		
	OUT	GIMSK,ZH
	OUT	MCUCR,ZH

;	LDI	R16,$02		; ENABLE TIM0 PRERIVANIE OVER
 ;	OUT	TIMSK,R16
 ;	OUT	TIFR,R16

;	LDI	R16,$04		; COUNTER TIM0=Fclk/256
 ;	OUT	TCCR0,R16
ISR01:
	SBIS	PIND,2
	RJMP	ISR01

	CLR	R21
	RCALL	DELAY

	SBIS	PIND,2
	RJMP	ISR01

	RET
;************************************************

Re: Энергосбережение Avr mega16

Добавлено: Пн мар 03, 2014 17:58:20
Кинг
А на си нет ничего а то асм я не очень