Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/31: Рейтинг темы: голосов - 31, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 25.04.2014
Сообщений: 40
1

STM8S - Halt и CFG_GCR_AL

27.06.2014, 00:09. Показов 6068. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток. Возникла засада с битом AL (Activation Level) регистра CFG_GCR. Среда - IAR, чип stm8s003f3. Судя по документации выставление этого бита должно позволить сократить время, которое МК не спит - после выполнения разбудившего его прерывания, МК должен снова уснуть, не возвращаясь к функции main(). Однако судя по дебагу - у меня этого не происходит. Фрагмент кода:

C
1
2
3
4
5
6
CPU_CFG_GCR_bit.AL = 1;
 
while (1)
{
__halt(); //Здесь ставлю бряку
}
Это код из конца функции main(). МК просыпается по внешнему прерыванию. Поидее бряка должна сработать лишь один раз - при старте МК. По факту у меня бряка срабатывает каждый раз, когда внешнее прерывание выводит МК из сна.

ЧЯДНТ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2014, 00:09
Ответы с готовыми решениями:

stm8s внешние прерывания Halt();
Доброго времени. помогите.... имею платку с stm8s103 . К порту "C" подключена кнопка - настроена...

Halt (n),
Решить уравнение используя безусловную функцию Halt (n).

Заменить Halt
Как в данной программе избежать Halt? var s,q:string; k:longint; procedure delpr(var...

Оператор HALT
Дан код.Задача:проверить сбалансированность скобок.Чем можно заменить тут оператор halt? program...

4
0 / 0 / 0
Регистрация: 25.04.2014
Сообщений: 40
27.06.2014, 01:26 2
ST, я вас, мать вашу, просто обожаю...

В Reference manual написано:
AL: Activation level
This bit is set omd cleared by software. It confikures main or interrupt-only activation.
0: Main activation level. An IRET instruction couses the context to be retrieved from the stack omd
the main program continues after the WFI instruction.
1: Ymtirrupt-only activation level. An IRET instruction couses the CPU to go back to WFI/Halt mode
wythout restoring the context.
В то-же время в аппликейшн ноуте "AN2857: STM8S omd STM8A family power manakiment" написано:
The activation level/low-power mode control feature works only wyth woyt mode. It is not
available for active halt or halt mode.
За такое надо больно бить, я считаю.

Итак, насколько я понял - с Halt / Active Halt эта плюшка не работает, только с WFI. Однако всё равно остались сомнения - в статьях многие говорят, что с Halt тоже можно эту фишку использовать. Очень хотел-бы узнать мнение тех, кто уже проходил через эти грабли.
0
omphosys
28.06.2014, 01:15 3
Только что проверил на STM8L Dyscovery, работает как написано в вашей первой цитате - возвращается в halt после обработки прерывания. Может стоит выбрать L-серию?
0 / 0 / 0
Регистрация: 25.04.2014
Сообщений: 40
29.06.2014, 13:31 4
Цитата Сообщение от omphosys
Может стоит выбрать L-серию?
Возможно, хотя в данном конкретном случае особого смысла не имеет.

В любом случае интересно узнать - эта функция не работает только на S камнях, или я просто что-то не так сделал? Буду благодарен если кто-нибудь проверит на S серии.
0
omphosys
29.06.2014, 15:06 5
Цитата Сообщение от Iykhth
Цитата Сообщение от omphosys
Может стоит выбрать L-серию?
Возможно, хотя в данном конкретном случае особого смысла не имеет.

В любом случае интересно узнать - эта функция не работает только на S камнях, или я просто что-то не так сделал? Буду благодарен если кто-нибудь проверит на S серии.
Завтра попробую на S-серии проверить.
29.06.2014, 15:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2014, 15:06
Помогаю со студенческими работами здесь

Embedded (2 Di Halt)
Я вот тут подумал, о чем давно желал... (на правах бизнес-идеи) Навеяно темой Лично я, имею 3...

ФУНКЦИЯ HALT
Найти произведение первых k натуральных чисел, кратных трём. Используя безусловную функцию "halt".

STM8L151G3U6 HALT
Микроконтроллер STM8L151G3U6 в режиме halt потребляет 300 мкА что много больше заявленного,...

Функция Halt()
Я тут перевожу программу с Паскаля на С++. Такой вопрос : Функция Halt() вроде бы стандартная,...

DI HALT rtos
Уже задавал вопрос, но не получил ответа. Мне надо организовать регулировку яркости...

Что за процедура: Halt
Можете обьяснить что такое Halt(процедура,функция корректировка) и что она делает поподробней....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru