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

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

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

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

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

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


 
Опции темы
Непрочитано 23.05.2013, 00:02  
krug_vv
Вид на жительство
 
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 377
Сказал спасибо: 192
Сказали Спасибо 156 раз(а) в 99 сообщении(ях)
krug_vv на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Может кому пригодится. Сделал самую краткую форму "дрыгалки" для ноги.
Без всяких if-else.
Define пишем в макросы, а дальше используем с указанием номера порта.
Закомментирована исходная форма для понимания смысла.

#define togglePin(num) (0x00010001‹‹(num))

//GPIOC-›BSRR = GPIOC-›IDR ^ (GPIO_BSRR_BS9|GPIO_BSRR_BR9); //тогглик для C.9
GPIOC-›BSRR = GPIOC-›IDR ^ togglePin(9); //тогглик для C.9
Реклама:
krug_vv вне форума  
Непрочитано 23.05.2013, 06:49  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от krug_vv Посмотреть сообщение
Сделал самую краткую форму "дрыгалки" для ноги.
Note: If both BSx and BRx are set, BSx has priority.
Так что никакого toggle не получится
По крайней мере, на ВСЕХ контроллерах семейства
niXto вне форума  
Непрочитано 23.05.2013, 08:33  
pambaru
Почётный гражданин KAZUS.RU
 
Регистрация: 24.03.2007
Сообщений: 1,359
Сказал спасибо: 85
Сказали Спасибо 616 раз(а) в 372 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от krug_vv Посмотреть сообщение
Сделал самую краткую форму "дрыгалки" для ноги.
Хм. А в чем прикол ?
Запись в виде, к примеру:
GPIOB-›ODR ^=0x01;
недостаточно кратка ?
Или не во всех камнях есть ?
pambaru вне форума  
Непрочитано 23.05.2013, 10:25  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от niXto Посмотреть сообщение
Так что никакого toggle не получится
По крайней мере, на ВСЕХ контроллерах семейства
У вас, кроме высокопарного звездежа, и так ничего не получается. Может только зря мучаетесь?
nahimovv вне форума  
Непрочитано 23.05.2013, 10:29  
krug_vv
Вид на жительство
 
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 377
Сказал спасибо: 192
Сказали Спасибо 156 раз(а) в 99 сообщении(ях)
krug_vv на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от niXto Посмотреть сообщение
Note: If both BSx and BRx are set, BSx has priority.
Так что никакого toggle не получится
По крайней мере, на ВСЕХ контроллерах семейства
Я выкладываю только то что проверил в железе (на 32F100)

Сообщение от pambaru Посмотреть сообщение
Хм. А в чем прикол ?
Запись в виде, к примеру:
GPIOB-›ODR ^=0x01;
недостаточно кратка ?
Или не во всех камнях есть ?
Согласен. Но тогда:
GPIOB-›ODR ^= 0x0001‹‹9; 9-номер ноги

или вы только 0-й ногой всегда дрыгаете?

Последний раз редактировалось krug_vv; 23.05.2013 в 10:37.
krug_vv вне форума  
Непрочитано 23.05.2013, 10:33  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от krug_vv Посмотреть сообщение
Может кому пригодится. Сделал самую краткую форму "дрыгалки" для ноги.
А в чём краткость? Просветите!
Кейл 4,70:
Код:
   116:    GPIOC-›ODR ^= (1 ‹‹ 9);   
0x08000510 4806      LDR      r0,[pc,#24]  ; @0x0800052C
0x08000512 68C0      LDR      r0,[r0,#0x0C]
0x08000514 F4807000  EOR      r0,r0,#0x200
0x08000518 4904      LDR      r1,[pc,#16]  ; @0x0800052C
0x0800051A 60C8      STR      r0,[r1,#0x0C]

   117:    GPIOC-›BSRR = GPIOC-›ODR ^ (0x00010001 ‹‹ 9);  
0x08000510 4806      LDR      r0,[pc,#24]  ; @0x0800052C
0x08000512 68C0      LDR      r0,[r0,#0x0C]
0x08000514 F0802002  EOR      r0,r0,#0x2000200
0x08000518 4904      LDR      r1,[pc,#16]  ; @0x0800052C
0x0800051A 6108      STR      r0,[r1,#0x10]
И почему IDR, а не ODR? По RMW соскучились?
nahimovv вне форума  
Непрочитано 23.05.2013, 13:02  
krug_vv
Вид на жительство
 
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 377
Сказал спасибо: 192
Сказали Спасибо 156 раз(а) в 99 сообщении(ях)
krug_vv на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от nahimovv Посмотреть сообщение
А в чём краткость? Просветите!
Уже осознал, каюсь.
Сильно не бейте, я только пару месяцев как STM32 осваиваю.
Будем считать, что материал учебный для изучения регистров и понимания многогранности подходов.
Теперь сижу чешу репу нахрена они сделали BRR и BSRR, когда можно любой бит через исключающее ИЛИ и так тогглить... Скорости не добавляет.

Последний раз редактировалось krug_vv; 23.05.2013 в 13:21.
krug_vv вне форума  
Непрочитано 23.05.2013, 13:39  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Да не переживайте так сильно. Не пытайтесь понять всё и сразу, кроме перегрева мозга ничего не получите.STM32, как ногодрыг, не очень, у него другие задачи и возможности их решения. Да и тоглл достаточно редкая операция, в больщинстве случаев невостребованная. А вот BRR и BSRR - вешь хорошая, нужная и достаточно быстрая, надо только ею правильно пользовваться.
nahimovv вне форума  
Непрочитано 23.05.2013, 15:03  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от krug_vv Посмотреть сообщение
Теперь сижу чешу репу нахрена они сделали BRR и BSRR, когда можно любой бит через исключающее ИЛИ и так тогглить... Скорости не добавляет.
Через эти регистры можно изменить некоторые биты, НЕ читая перед этим состояние выходного регистра, то есть экономия одной команды и одного регистра. А через BSRR можно одной командой установить И сбросить некоторые биты, то есть ещё экономия 3...5 команд и машинных циклов
niXto вне форума  
Непрочитано 23.05.2013, 15:13  
krug_vv
Вид на жительство
 
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 377
Сказал спасибо: 192
Сказали Спасибо 156 раз(а) в 99 сообщении(ях)
krug_vv на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Да уже разобрался, спасибо.
krug_vv вне форума  
 

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

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

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, время: 21:25.


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