Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Изучаем STM32 Cortex M3

Непрочитано 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.RUN
 
Аватар для MaxiMuz79
 
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 528
Сказал спасибо: 73
Сказали Спасибо 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.RUN
 
Аватар для MaxiMuz79
 
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 528
Сказал спасибо: 73
Сказали Спасибо 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.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

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

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

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

сбрасывать флаги прерывания ? Ведь получается три операции: чтение - модификация -запись. Если после чтения до записи произойдет еще событие которое приведет к установке другого бита , то он будет потерян!
Где Вы тут чтение увидели? Что тут пропадет ?
Boba_spb вне форума  
Непрочитано 21.04.2014, 21:50  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 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,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
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, время: 11:51.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.