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

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

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

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

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

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


 
Опции темы
Непрочитано 26.11.2010, 17:28  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

EugenyAM
У Вас ошибки в статьях.
Например:
Код:
CLK_SWCR_bit.SWEN=1; // Автопереключение источника Clock при неисправности HSE (SWEN).
Этот бит всего лишь запускает переключение клока. Реакция на неисправность такта задается в регистре CLK_CSSR.
Ну и такая конструкция как обычно при включенной оптимизации будет работать не так как ожидается:
Код:
 long i;
     while(1)
     {
          PD_ODR_bit.ODR0=~PD_ODR_bit.ODR0; //Переключим светодиод
          for(i=0;i‹200000;i++); //Подождем...
     }
Оптимизатор выбросит и переменную i и цикл. Вы забыли volatile добавить. Из за таких мелочей начинающий может на несколько дней застрять
Реклама:

Последний раз редактировалось kison; 26.11.2010 в 17:41.
kison вне форума  
Непрочитано 26.11.2010, 17:59  
EugVor
Временная регистрация
 
Регистрация: 15.03.2006
Сообщений: 80
Сказал спасибо: 3
Сказали Спасибо 83 раз(а) в 11 сообщении(ях)
EugVor на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от kison Посмотреть сообщение
Оптимизатор выбросит и переменную i и цикл. Вы забыли volatile добавить. Из за таких мелочей начинающий может на несколько дней застрять
По дефолту оптимизация во всех компиляторах отключена, если не ошибаюсь. И думаю что очень многие её никогда и не включают чтобы не нарваться на подобные сюрпризы.
Когда начинающий захочет ею воспользоваться это будет уже не начинающий, во всяком случае, он предварительно поинтересуется какой код имеет большие шансы на вылет и что такое volatile. Хотя подправить конечно не проблема…
EugVor вне форума  
Непрочитано 26.11.2010, 18:00  
XoDoK11
Гражданин KAZUS.RU
 
Аватар для XoDoK11
 
Регистрация: 17.08.2008
Сообщений: 770
Сказал спасибо: 52
Сказали Спасибо 450 раз(а) в 202 сообщении(ях)
XoDoK11 на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от EugenyAM Посмотреть сообщение
Через недельку будет реализация DMX512 на нем.
Очень интересно будет посмотреть.
XoDoK11 вне форума  
Непрочитано 26.11.2010, 18:10  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от EugVor Посмотреть сообщение
По дефолту оптимизация во всех компиляторах отключена, если не ошибаюсь.
В STVD отключена в конфигурации DEBUG и включена в RELEASE. У меня уже включена в обоих Вообще ее смысла отключать нет. Если нужно контроллировать какие то переменные, которые оптимизатор зачищает, можно им квалификатор volatile добавить, а после отладки убрать.
kison вне форума  
Непрочитано 26.11.2010, 20:00  
EugenyAM
Временная регистрация
 
Регистрация: 24.09.2010
Сообщений: 97
Сказал спасибо: 9
Сказали Спасибо 41 раз(а) в 31 сообщении(ях)
EugenyAM на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от kison Посмотреть сообщение
У Вас ошибки в статьях.
Например:

Код:
CLK_SWCR_bit.SWEN=1; // Автопереключение источника Clock при неисправности HSE (SWEN).
Этот бит всего лишь запускает переключение клока. Реакция на неисправность такта задается в регистре CLK_CSSR.
т.е. нужно добавить
Код:
CLK_CSSR_bit.CSSEN=1
так?
EugenyAM вне форума  
Непрочитано 26.11.2010, 20:19  
EugenyAM
Временная регистрация
 
Регистрация: 24.09.2010
Сообщений: 97
Сказал спасибо: 9
Сказали Спасибо 41 раз(а) в 31 сообщении(ях)
EugenyAM на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от kison Посмотреть сообщение
Оптимизатор выбросит и переменную i и цикл. Вы забыли volatile добавить. Из за таких мелочей начинающий может на несколько дней застрять
В IAR эффект наблюдается, только если включить уровень оптимизации High.
по умолчанию такое стоит в Release.

Исправим...
EugenyAM вне форума  
Непрочитано 26.11.2010, 20:54  
EugVor
Временная регистрация
 
Регистрация: 15.03.2006
Сообщений: 80
Сказал спасибо: 3
Сказали Спасибо 83 раз(а) в 11 сообщении(ях)
EugVor на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от faru Посмотреть сообщение
В принципе - интересно, если бы по каждому устройству переферии - прожевывался все подразделы по 00016 мануалу целиком, а не выборочно выдранные пункты.
Если кто-то захочет посодействовать с превеликим удовольствием разместим Ваш материал или замечания-исправления.
EugVor вне форума  
Непрочитано 26.11.2010, 21:08  
EugenyAM
Временная регистрация
 
Регистрация: 24.09.2010
Сообщений: 97
Сказал спасибо: 9
Сказали Спасибо 41 раз(а) в 31 сообщении(ях)
EugenyAM на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Правильная инициализация 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);    //Ждем стабилизации частоты
  CLK_CSSR_bit.CSSEN=1;     //Разрешаем автопереключение источника Clock на внутренний при неисправности генератора
EugenyAM вне форума  
Непрочитано 26.11.2010, 22:33  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от EugenyAM Посмотреть сообщение
Правильная инициализация CLK с автопереключением
Какие то у Вас странные конструкции. Если хотите именно вручную переключать такт, то запускаете нужный генератор, например HSE. Далее ЖДЕТЕ пока он запустится - установится бит HSERDY в регистре ECKR. И только потом переключаете клок.
Для включения автоподмены клока при отказе основного действительно достаточно установить CSSEN в CSSR, но смысла в этом нет. Нужно как минимум еще прерывание разрешить, ведь замена к примеру 16МГц внешнего такта на 2МГц внутренний скорее всего не улучшит функционирование. Это аварийный режим, а не рабочий.

Сообщение от faru Посмотреть сообщение
И на том рисунке не пояснено - к каким пинам чипа ноги эненкодера цеплять и как ..
Цеплять паяльником , ноги на рисунке нарисованы. Линия от TIM1_CH1 называется TI1, TIM1_CH2 - TI2.

Сообщение от faru Посмотреть сообщение
туплю может, но вроде речь идет о механическом девайсе а не о виртуальной штукенции.
О механическом конечно. У инкрементального энкодера два выхода - А и В. Вот их и надо подключать к TI1 и TI2.
kison вне форума  
Непрочитано 26.11.2010, 22:54  
EugenyAM
Временная регистрация
 
Регистрация: 24.09.2010
Сообщений: 97
Сказал спасибо: 9
Сказали Спасибо 41 раз(а) в 31 сообщении(ях)
EugenyAM на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от kison Посмотреть сообщение
Какие то у Вас странные конструкции. Если хотите именно вручную переключать такт, то запускаете нужный генератор, например HSE. Далее ЖДЕТЕ пока он запустится - установится бит HSERDY в регистре ECKR. И только потом переключаете клок.
мануал, п 8.2.2, пункт Automatic switching
Разрешаем работу генератора HSEEN=1
Разрешаем механизм переключения SWEN=1
Записываем код источника в CLK_SWR=0xB4
ждем результат

Цитата:
Нужно как минимум еще прерывание разрешить, ведь замена к примеру 16МГц внешнего такта на 2МГц внутренний скорее всего не улучшит функционирование. Это аварийный режим, а не рабочий.
Естественно, аварийный режим... Например если не ждать готовности основного генератора, а сразу разрешить CSSEN, мы получим автоматическое переключение на резервный генератор, что будет заметно по уменьшению частоты мигания светодиода в 8 раз.
Проверено чисто в учебных целях, чтобы на это не попадаться.
Естественно, в реальном проекте надо разрешать прерывание и обрабатывать данную ситуацию.
Если последнюю строчку закомментировать, на работе примеров это не отразится.
EugenyAM вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
KiCAD-объявления и впечатления al_dan KiCAD 32 03.10.2016 17:02
Народ, посмотрите quasm, Как ваши впечатления? suri Proteus, KiCAD и другие ECAD 5 14.10.2009 11:57


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


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