реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Выход из режима Idle
_Артём_
сообщение Oct 14 2010, 16:15
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Возможно ли выйти иэ режима Idle без перехода на вектор прерывания?
Т.е. продолжить выполнение программы командой следующей после sleep. не переходя в прерывание (например по переполнению таймера).
Тип контроллера: ATxmega256A3.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 14 2010, 16:41
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Как Вы себе это представляете?
ИМХО для выхода из слипа нужно событие.
Какие Вы можете предложить события кроме прерываний?

Сделайте пустое прерывание с reti и ваша инструкция выполнится через несколько тактов, которые на фоне длительности слипа капля в море.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Oct 14 2010, 17:02
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(demiurg_spb @ Oct 14 2010, 19:41) *
Как Вы себе это представляете?
ИМХО для выхода из слипа нужно событие.
Какие Вы можете предложить события кроме прерываний?

Сделайте пустое прерывание с reti и ваша инструкция выполнится через несколько тактов, которые на фоне длительности слипа капля в море.


Не хочется в bootloader-е прерывания задействовать.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 14 2010, 17:32
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



А зачем спать в буте?!
Каждый сам себе Буратино:-)


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Oct 14 2010, 17:37
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(demiurg_spb @ Oct 14 2010, 20:32) *
А зачем спать в буте?!
Каждый сам себе Буратино:-)


Из-за errata:
Цитата
Writing EEPROM or Flash while reading any of them will not work
The EEPROM and Flash cannot be written while reading EEPROM or Flash, or while exe-
cuting code in Active mode.
Problem fix/Workaround
Enter IDLE sleep mode within 2.5 uS (Five 2 MHz clock cycles and 80 32 MHz clock cycles)
after starting an EEPROM or flash write operation. Wake-up source must either be
EEPROM ready or NVM ready interrupt. Alternatively set up a Timer/Counter to give an
overflow interrupt 7 mS after the erase or write operation has started, or 13 mS after atomic
erase-and-write operation has started, and then enter IDLE sleep mode.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 14 2010, 17:39
Сообщение #6


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Мммм как неприятно... На какой контроллер errata?


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Oct 14 2010, 17:46
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(demiurg_spb @ Oct 14 2010, 20:39) *
Мммм как неприятно... На какой контроллер errata?


ATxmega64/128/192/256A3 rev. B
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 14 2010, 17:49
Сообщение #8


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Понятно. Слава Богу XMega не использую.
Цитата(_Артём_ @ Oct 14 2010, 21:02) *
Не хочется в bootloader-е прерывания задействовать.
Видимо придётся. Я иных вариантов не вижу к сожалению.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Oct 14 2010, 17:57
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(demiurg_spb @ Oct 14 2010, 20:49) *
Понятно. Слава Богу XMega не использую.
Видимо придётся. Я иных вариантов не вижу к сожалению.


да, наверное, придётся разбираться как прерывания размещать в boot-секторе.

Go to the top of the page
 
+Quote Post
rx3apf
сообщение Oct 14 2010, 18:23
Сообщение #10


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(_Артём_ @ Oct 14 2010, 21:57) *
да, наверное, придётся разбираться как прерывания размещать в boot-секторе.

А (по крайней мере в обычных mega) тривиально - один битик в управляющем регистре и готово дело, таблица векторов в буте. Только потом, перед переходом в основную программу, не забыть переставить обратно.
Go to the top of the page
 
+Quote Post
GDI
сообщение Oct 15 2010, 08:28
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Там же написано
Wake-up source must either be EEPROM ready or NVM ready interrupt.
Да и альтернативные методы предлагаются с прерываниями. Так что без прерываний никак.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th June 2025 - 17:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01431 секунд с 7
ELECTRONIX ©2004-2016