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

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

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

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

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

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


 
Опции темы
Непрочитано 20.04.2014, 23:46  
sergeyye
Временная регистрация
 
Аватар для sergeyye
 
Регистрация: 12.03.2005
Адрес: Москва
Сообщений: 61
Сказал спасибо: 42
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sergeyye на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Не было печали - купила баба порося. А мужик купил STM32F3 плату. И к ней энкодер, который подключил к TIM4 (PD12 и 13). Руководствуясь Reference manual RM0316, написал следующее:

RCC-›APB1ENR |= RCC_APB1ENR_TIM4EN;//Включаем тактирование TIM4

/***** Конфигурирую порт D: PD.0 - PD.6, PD.12, PD.13 *****/
PortD -› MODER = 0x0A001555; // PD.12, PD.13 как альтернативные
PortD -› OTYPER = 0x00000000; // Пуш-пуль
PortD -› OSPEEDR = 0x00000000; // 2 МГц
PortD -› PUPDR = 0x05401555; // Подтяжка вверх

void Init_Encoder (void) // Конфиг таймера в реж. энкодера
{ NVIC_EnableIRQ (TIM4_IRQn); // Разрешить прерывание
TIM4-›CCER = TIM_CCER_CC1P | TIM_CCER_CC2P; // инвертировать входной сигнал
TIM4-›CCMR1 = TIM_CCMR1_CC1S_0 | TIM_CCMR1_CC2S_0; // Подключить счётчик к PortD.12 и PortD.13
TIM4-›SMCR = TIM_SMCR_SMS_0 | TIM_SMCR_SMS_1; // Счёт по фронту и спаду
TIM4 -› ARR = 0x0004; // Reload counter
TIM4 -› DIER = 1; // Разрешить прерывание
TIM4-›CR1 |= TIM_CR1_CEN; //Старт счета таймера
}
void TIM4_IRQHandler (void) // Обработка прерывания
{ TIM4-›SR &= ~TIM_SR_UIF;
........................... }

Цель - щелчок энкодера зажигает следующий LED в кругу на плате в зависимости от направления вращения. Но чудо не произошло. В дебагере (Keil) видно - счётчик TIM4_CNT не считает. Почему? Что я не доучёл?
Реклама:
sergeyye вне форума  
Непрочитано 21.04.2014, 14:39  
MaxiMuz79
Гражданин KAZUS.RU
 
Аватар для MaxiMuz79
 
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 529
Сказал спасибо: 74
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
MaxiMuz79 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от sergeyye Посмотреть сообщение
PortD -› MODER = 0x0A001555; // PD.12, PD.13 как альтернативные
а разве у входного пина может быть альтернативный режим ?

Сообщение от sergeyye Посмотреть сообщение
TIM4-›CCER = TIM_CCER_CC1P | TIM_CCER_CC2P; // инвертировать входной сигнал
TIM4-›CCMR1 = TIM_CCMR1_CC1S_0 | TIM_CCMR1_CC2S_0; // Подключить счётчик к PortD.12 и PortD.13
TIM4-›SMCR = TIM_SMCR_SMS_0 | TIM_SMCR_SMS_1; // Счёт по фронту и спаду
а здесь я думаю вместо присваивания все же лучше поставить включение битов "|="
MaxiMuz79 вне форума  
Сказали "Спасибо" MaxiMuz79
sergeyye (21.04.2014)
Непрочитано 21.04.2014, 16:00  
MaxiMuz79
Гражданин KAZUS.RU
 
Аватар для MaxiMuz79
 
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 529
Сказал спасибо: 74
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
MaxiMuz79 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

А грамотно ли в обработчике вот так:
Сообщение от sergeyye Посмотреть сообщение
TIM4-›SR &= ~TIM_SR_UIF;
сбрасывать флаги прерывания ? Ведь получается три операции: чтение - модификация -запись. Если после чтения до записи произойдет еще событие которое приведет к установке другого бита , то он будет потерян!
MaxiMuz79 вне форума  
Сказали "Спасибо" MaxiMuz79
sergeyye (21.04.2014)
Непрочитано 21.04.2014, 16:30  
sergeyye
Временная регистрация
 
Аватар для sergeyye
 
Регистрация: 12.03.2005
Адрес: Москва
Сообщений: 61
Сказал спасибо: 42
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sergeyye на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

[QUOTE=MaxiMuz79;795657]а разве у входного пина может быть альтернативный режим ?QUOTE]

Не знаю. Как до дома доберусь - сразу переопределю как входы и отпишусь.
С остальными замечаниями полностью согласен. В оригинале у меня все операции как присвение. Это мне здесь предложили переделать для пущей понятности.


До дома добрался. Переопределил как обычные входы. Не работает!

Последний раз редактировалось sergeyye; 21.04.2014 в 20:40.
sergeyye вне форума  
Непрочитано 21.04.2014, 19:18  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от MaxiMuz79 Посмотреть сообщение
А грамотно ли в обработчике вот так:

сбрасывать флаги прерывания ? Ведь получается три операции: чтение - модификация -запись. Если после чтения до записи произойдет еще событие которое приведет к установке другого бита , то он будет потерян!
Не грамотно. Грамотно через битбандинг, но это слишком сложно для обычных "программистов", которые хвалятся что у них на освоение нового контроллера уходит максимум пара недель. Да и в SPL битбандинг не прописан, нужно ручками
niXto вне форума  
Непрочитано 21.04.2014, 21:33  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от MaxiMuz79 Посмотреть сообщение
А грамотно ли в обработчике вот так:

сбрасывать флаги прерывания ? Ведь получается три операции: чтение - модификация -запись. Если после чтения до записи произойдет еще событие которое приведет к установке другого бита , то он будет потерян!
Где Вы тут чтение увидели? Что тут пропадет ?
Boba_spb вне форума  
Непрочитано 21.04.2014, 21:50  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Хм, чтение есть. Прошу пардона. Значаит еще все впереди - когда нить сделают операции с памятью "чтение - модификация - запись"
Boba_spb вне форума  
Непрочитано 22.04.2014, 11:27  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от niXto Посмотреть сообщение
Не грамотно. Грамотно через битбандинг, но это слишком сложно для обычных "программистов", которые хвалятся что у них на освоение нового контроллера уходит максимум пара недель. Да и в SPL битбандинг не прописан, нужно ручками
Сегодня купил Дискавери F051. Хочу освоить за пару недель. Что мне делать с битбандингом? Его отдельно покупать нужно или он уже есть на плате?
STM32F0 вне форума  
Непрочитано 22.04.2014, 11:32  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,033
Сказал спасибо: 2,561
Сказали Спасибо 11,881 раз(а) в 5,958 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от STM32F0 Посмотреть сообщение
Что мне делать с битбандингом? Его отдельно покупать нужно или он уже есть на плате?
Очень похоже на
"Скачала файл из интернета, а он оказался не нужен. Как закачать его обратно?"
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 22.04.2014, 11:38  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Не совсем понял! Хотите сказать, что niXto соврал? Тогда я совсем запутался.
STM32F0 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


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


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