01.12.2010, 10:55
|
#621
|
Почётный гражданин KAZUS.RU
Регистрация: 19.02.2008
Сообщений: 1,799
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Пересмотрел Reference manual, но так и не нашел порядок конфигурирования CLK.
Подскажите правильный порядок.
|
|
|
|
01.12.2010, 17:04
|
#622
|
Временная регистрация
Регистрация: 24.09.2010
Сообщений: 97
Сказал спасибо: 9
Сказали Спасибо 41 раз(а) в 31 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от andries5
|
Пересмотрел Reference manual, но так и не нашел порядок конфигурирования CLK.
Подскажите правильный порядок.
|
CLK_ECKR_bit.HSEEN=1; //Разрешаем работу генератора с внешним кварцем (HSEEN)
CLK_SWCR_bit.SWEN=1; //Разрешаем переключение генераторов;
CLK_SWR=0xB4; //Выбираем clock от кварцевого генератора (HSE)
CLK_CKDIVR=0; //Делители частоты внутреннего и внешнего генератора на 1 - частота ядра максимальная
while(CLK_CMSR!=0xB4); //Ждем стабилизации частоты
|
|
|
Эти 2 пользователя(ей) сказали Спасибо EugenyAM за это сообщение:
|
|
|
01.12.2010, 19:07
|
#623
|
Почётный гражданин KAZUS.RU
Регистрация: 19.02.2008
Сообщений: 1,799
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
В AVRStudio можно было посчитать время исполнения программы по шагам, а в STVD можно? Что-бы настроить функцию Delay() не используя таймер.
|
|
|
|
01.12.2010, 19:18
|
#624
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от andries5
|
В AVRStudio можно было посчитать время исполнения программы по шагам, а в STVD можно?
|
В режиме симулятора меню View-› Core Registers
На вкладке Time все и находится. Правда счетчик тактов в шестнадцатиричном виде, что несколько непривычно. А вот время - в десятичных долях миллисекунды.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо kison за это сообщение:
|
|
|
02.12.2010, 00:24
|
#625
|
Временная регистрация
Регистрация: 24.09.2010
Сообщений: 97
Сказал спасибо: 9
Сказали Спасибо 41 раз(а) в 31 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от faru
|
Вопрос по-существу: как в IAR для STM8 избавится от пред-иннициализатора, т.е. чтобы вектор reset'а смотерел на начало main() ?
|
Так же, как и в версии для AVR
Функция находится в файле stm8\src\lib\low_level_init.c
вызывается перед инициализацией переменных и позволяет ее отменить
для этого нужно только в последней строке написать
return 0;
Код:
|
int __low_level_init ( void )
{
/*==================================*/
/* Initialize hardware. */
/*==================================*/
/*==================================*/
/* Choose if segment initialization */
/* should be done or not. */
/* Return: 0 to skip segment init */
/* 1 to do segment init */
/*==================================*/
return 1;
} |
|
|
|
|
02.12.2010, 01:04
|
#626
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от EugenyAM
|
вызывается перед инициализацией переменных и позволяет ее отменить
|
А кто ее вызывать то будет, если вектор сброса будет на main указывать? Впрочем faru видимо расхотел получить ответ на свой вопрос. Я в этой ветке вообще ни одного его сообщения больше не вижу, похоже он их удалил. Может в новой прикрепленной теме по STM8/32 расскажет, зачем избавляться от стартапа.
|
|
|
|
02.12.2010, 05:37
|
#627
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от kison
|
Я не пользовался AB, но команды установки бита в регистре у АВР нет. Есть только ORI, которая работает не со всеми регистрами и очень даже портит SREG.
|
Раз не пользовался AVR -ами то и не нужно вводить народ в заблуждение - команды установки бита в AVR -есть - это для РОН команда sbr Rd,K где регистр Rd это тот в котором устанавливаем , а K это константа - маска изменяемых битов где в константе стоя единички , и причем даже за один присест изменить не один бит в регистре , а хоть все 8 - и все это за 1 такт , а для регистров ввода вывода команда sbi ,только здесь не маска а конкретный номер бита указывается .
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 02.12.2010 в 05:39.
|
|
|
|
02.12.2010, 05:47
|
#628
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от kison
|
О приоритетах прерываний. В отличии от тех же АВР в STM8 имеется реально приоритетная система прерываний. Впрочем псевдоприоритеты по номерам векторов, как у АВР, тоже имеются. В регистре состояния есть два флажка i0 и i1. Ими задается текущий приоритет. Система по сути работает всегда в режиме прерывания. Для каждого вектора задается свой приоритет. При возникновении запроса на прерывание контроллер проверяет заданный для соответствующего вектора приоритет и вызывает прерывание только если он выше текущего. При входе в прерывание этот заданный приоритет копируется во флажки i1 и i0 регистра состояния процессора - теперь прерывания возможны только для векторов, у которых приоритет выше. При выходе из прерывания восстанавливается регистр состояния и соответственно приоритет действовавший до входа в прерывание. Запрет прерывания - установка в регистре состояния сразу максимального приоритета. Разрешение - минимального. Там все правда несколько хитрее, вектору нельзя задать минимальный приоритет, так чтоб он не мог прервать основной цикл. Ну и приоритеты идут не по порядку. Максимальный - 0b11, минимальный не 0b00 как логично предположить, а 0b10. Именно последний устанавливается текущим при разрешении прерываний в основном цикле. В общем довольно гибкая система и весьма продуманная.
|
А в AVR-ах тоже система прерыв продуманная , и не никакая не "псевдо" а нормальная , и причем даже в самом программном ходе обработки текущего прерывания можно устанавливать и сбрасывать прерыв другого уровня , любого , и это еще и независимо от опций запрета или разрешения прерываний .
__________________
Короче асма кода нет !
|
|
|
|
02.12.2010, 05:54
|
#629
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от kison
|
...Более того - система может сама переключить источник на внутренний 16МГц с делителем на 8, если например кварц отвалится. Перейдя на внутренний генератор мы еще и прерывание получим, ну чтоб знать что имеются проблемы. Это полезная фича...
|
Да нет , никак фичей назвать не могу потому что такую же систему можно реализовать и на AVR-е : при инициализации определять наличие генерации и подключать кварц если генерация с него есть , и тогда в случае в момент отвала кварца в AVR не поступит тактов и тогда WDT перезапуcтит AVR - при инициализации на WDT-шном тактовом AVR снова определит что теперь кварц не генерит и включит запасной , например внутренний источник тактов или другой внешний генератор ( конечно сам WDT должен быть включен , а вот без него - будет завис ![Мистер Грин](images/smilies/icon_smilegreen.gif) ), так что выходит что это совсем даже не фича а просто обычная возможность переключения источников тактов такая же точно как и в AVR-ах .
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 02.12.2010 в 09:51.
|
|
|
|
02.12.2010, 06:35
|
#630
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от kison
|
...Кроме того доступ по sbi/cbi имеется к очень небольшому числу регистров....
|
Да опять неверно - для sbi/cbi в AVR доступны все младшие регистры ввода/вывода адресов до 32 - а их там дофига в общем-то .
__________________
Короче асма кода нет !
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:40.
|
|