Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 16.03.2011, 18:23  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,799
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: FAQ по STM8

Если я хочу сигнализировать о переключении источника такта, то буду создавать соответствующий обработчик. Просто надо чтобы он начинал контроль после установившегося режима от HSE.
Т.е. создать свой флаг, установить его самому и контролировать его в данном обработчике прерывания CLK. Видимо так.
Реклама:

Последний раз редактировалось andries5; 16.03.2011 в 18:33.
andries5 вне форума  
Непрочитано 16.03.2011, 18:48  
N1X
Временная регистрация
 
Аватар для N1X
 
Регистрация: 25.12.2007
Сообщений: 91
Сказал спасибо: 8
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
N1X на пути к лучшему
По умолчанию Re: FAQ по STM8

Объясните, пожалуйста, суть строчки:
Код:
#define GPIOA ((GPIO_TypeDef *) GPIOA_BaseAddress)
Не могу в голове развернуть ее никак ))) думаю не нужно рассказывать, откуда она ))
N1X вне форума  
Непрочитано 16.03.2011, 18:53  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: FAQ по STM8

Это приведение типа. Разворачивать ее не во что. Дословно GPIOA - указатель на переменную типа GPIO_TypeDef, содержит GPIOA_BaseAddress, т.е. переменная/константа на которую указывает этот указатель имеет адрес GPIOA_BaseAddress.
kison вне форума  
Сказали "Спасибо" kison
N1X (16.03.2011)
Непрочитано 17.03.2011, 03:08  
akimych
Прописка
 
Регистрация: 02.01.2011
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 32 раз(а) в 28 сообщении(ях)
akimych на пути к лучшему
По умолчанию Re: FAQ по STM8

Наверно будет понятней, если сказать: "по адресу GPIOA_BaseAddress расположена структура GPIO_TypeDef". Как бы в этом суть.
Ну а обращение к этой структуре, как по указателю.
GPIOA-›ODR - обращение к регистру ODR, ну и т.д.
akimych вне форума  
Сказали "Спасибо" akimych
N1X (19.03.2011)
Непрочитано 04.05.2011, 22:01  
Hrumm
Прохожий
 
Регистрация: 30.09.2010
Сообщений: 2
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Hrumm на пути к лучшему
По умолчанию Re: FAQ по STM8

Discovery. При компиляции Cosmic выдаёт ошибку "bad struct/union operand" на любую строку с обращением к ADC1, например: ADC1-›CR1=0; Тогда, как на ADC2-›CSR=0; - всё в порядке. Но в STM8S105C6 нет ADC2. Понятно, что что-то с определением типа процессора. В настройках всё правильно. Что может быть?
Hrumm вне форума  
Непрочитано 05.05.2011, 07:43  
PlainUser
Прописка
 
Регистрация: 09.12.2003
Сообщений: 116
Сказал спасибо: 5
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
PlainUser на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от Hrumm Посмотреть сообщение
Discovery. При компиляции Cosmic выдаёт ошибку "bad struct/union operand" на любую строку с обращением к ADC1, например: ADC1-›CR1=0; Тогда, как на ADC2-›CSR=0; - всё в порядке. Но в STM8S105C6 нет ADC2. Понятно, что что-то с определением типа процессора. В настройках всё правильно. Что может быть?
Про космик не в курсе но обычно тип процессора можно задать 2 способами.
1-опции в IDE
2-принудительно дефайном прямо в программе

может рудимент в исходниках?
PlainUser вне форума  
Непрочитано 05.05.2011, 07:56  
Hrumm
Прохожий
 
Регистрация: 30.09.2010
Сообщений: 2
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Hrumm на пути к лучшему
По умолчанию Re: FAQ по STM8

Сообщение от PlainUser Посмотреть сообщение
Про космик не в курсе но обычно тип процессора можно задать 2 способами.
1-опции в IDE
2-принудительно дефайном прямо в программе

может рудимент в исходниках?
Спасибо! Помог 2-й вариант. Всё заработало.
Hrumm вне форума  
Непрочитано 07.05.2011, 02:03  
operator
Частый гость
 
Регистрация: 15.11.2009
Сообщений: 28
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
operator на пути к лучшему
По умолчанию Re: FAQ по STM8

Недавно взялся за изучение микроконтроллеров STM8.
На данный момент читаю документацию
(programming manual)

там на странице 14 написано:

Global configuration register (CFG_GCR):
The global configuration register is a memory mapped register. It controls the configuration
of the processor. It contains the AL control bit:
● AL: Activation level
If the AL bit is 0 (main), the IRET will cause the context to be retrieved from stack and the
main program will continue after the WFI instruction.
If the AL bit is 1 (interrupt only active), the IRET will cause the CPU to go back to WFI/HALT
mode without restoring the context.
This bit is used to control the low power modes of the MCU. In a very low power application,
the MCU spends most of the time in WFI/HALT mode and is woken up (through interrupts)
at specific moments in order to execute a specific task. Some of these recurring tasks are
short enough to be treated directly in an ISR, rather than going back to the main program. In
this case, by programming the AL bit to 1 before going to low power (by executing WFI/HALT
instruction), the run time/ISR execution is reduced due to the fact that the register context is
not saved/restored each time.

Что я (с помощью переводчика) перевел как:
Глобальный регистр конфигурации.
Расположен в памяти программ. Управляет конфигурацией процессора. Состоит из бита AL.
Когда AL = 0 (основные), возврат из прерывания контекст восстанавливает из стека и продолжает выполнение программы после инструкции WFI.

Когда AL = 1, (только активные прерывания) после команды IRET ЦПУ идет обратно WFI/HALT режим через сохранение контекста.

Этот бит используется для режима энергосбережения ЦПУ. Для очень малопотребляющих приложений, в этом случае MCU проводит большую часть времени в способе WFI/HALT и пробуждается (через перерывы) в определенные моменты, чтобы выполнить определенную задачу. Некоторые из этих возвращающихся задач достаточно короткий, чтобы рассматриваться непосредственно в ISR, вместо того, чтобы возвратиться к главной программе. В этом случае, программируя AL = 1, контекст не будет восстанавливаться, и как следствие, длительность обработчика уменьшится.

В связи с этим вопросы:
1) Для чего используется этот бит (из перевода это не очень ясно)?
2) Что такое ISR?
3) Чем отличается сохранение контекста при AL = 0/1?
4) Связано ли это (и как) с приоритетом прерываний?
operator вне форума  
Непрочитано 07.05.2011, 19:00  
akimych
Прописка
 
Регистрация: 02.01.2011
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 32 раз(а) в 28 сообщении(ях)
akimych на пути к лучшему
По умолчанию Re: FAQ по STM8

Цитата:
В связи с этим вопросы:
1) Для чего используется этот бит (из перевода это не очень ясно)?
2) Что такое ISR?
3) Чем отличается сохранение контекста при AL = 0/1?
4) Связано ли это (и как) с приоритетом прерываний?
1) Этот бит используется для управления энергосберегающим режимом.
2) Interrupt Service Routine = обработчик прерывания
3) Сохранение - ничем.
4) Нет.
AL влияет на выход из энергосберегающего режима. Команда WFI переводит проц в спячку, прерывание его будит. А далее, если AL = 0, то после выхода из прерывания проц продолжит выполнение основной програмы (после инструкции WFI), если AL = 1, то после выхода из прерывания проц заснет опять.
Переводчик странно перевел "go back to WFI/HALT mode without restoring the context" Правильно будет не "через сохранение контекста", а "без восстановления контекста". Про контекст упомянуто, чтоб пояснить, если не надо возвращаться в основную программу, то и контекст восстанавливать из стека не надо.
akimych вне форума  
Сказали "Спасибо" akimych
operator (08.05.2011)
Непрочитано 08.05.2011, 16:23  
operator
Частый гость
 
Регистрация: 15.11.2009
Сообщений: 28
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
operator на пути к лучшему
По умолчанию Re: FAQ по STM8

В то же документе на стр. 50
Зачем нужны Pre-code и pre-bytes?
Это байт который стоит перед кодом операции и изменяет команду, которая следуют за ним.

Вот например один из них:
90h = PDY Replaces an X based instruction using immediate, direct, indexed or inherent addressing mode by a Y one. It also provides read/modify/write instructions using Y indexed addressing mode with long offset and two bit handling instructions
(BCPL and BCCM)

и мой перевод, из которого яснее не становится:
Заменяет команду, основанную на Х использованием непосредственный, прямой, индексной или inherent адресации основанной на Y . Это также обеспечивает работу команд типа чтение/модификация/запись, с использованием индексной адресации с регистром Y адресации с длинным смещением и двумя «ручными» битовыми командами (BCPL и BCCM).
operator вне форума  
 

Закладки

Метки
arm, cortex, stm32, stm8
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импульсная зарядка для авто-аккумуляторов (новодел) Falconist Источники питания и свет 1915 14.03.2024 19:56
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
STM8(S/L), первые впечатления kison STM8 1423 19.05.2018 19:23
Вопросы и замечания по топику - FAQ по PROTEUS avr123-nm-ru Proteus 291 05.06.2015 20:49
FAQ Импульсный трансформатор alberio Источники питания и свет 87 13.11.2012 18:07


Часовой пояс GMT +4, время: 22:35.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot