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

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

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

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

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

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


 
Опции темы
Непрочитано 14.03.2017, 20:58  
zöner
Гражданин KAZUS.RU
 
Регистрация: 16.02.2012
Сообщений: 441
Сказал спасибо: 89
Сказали Спасибо 735 раз(а) в 149 сообщении(ях)
zöner на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Цитата:
Если хотите точно отмерить очень малые интервалы - вставляйте ассемблерные вставки nop-ов или циклов
после некоторого бодания с асмом удалось заинлайнить функцию и асм-цикл задержки:
Код:
inline void delay_loops(u32 loops){
	asm volatile (
		".syntax unified \n"
		"1: subs %0,#1 \n"
		"   bne  1b \n"
		".syntax divided \n"
		: "=l"(loops) : "0l"(loops) : "cc"
	);
}
вся задержка транслируется в 3 команды / 6 байт (+4 байта если константа ›8 бит):
Код:
 80009fc:	2164      	movs	r1, #100	; 0x64
 80009fe:	3901      	subs	r1, #1
 8000a00:	d1fd      	bne.n	80009fe ‹lcd_wr4+0x5a›
3 такта на цикл при Flash latency=0 (‹=24MHz), 6 - при 1 (‹=48MHz)
генерация мкс/мс/с задержек:
Код:
#define D_C ((F_CPU ‹= 24000000uL) ? 3.0 : (F_CPU ‹= 48000000uL) ? 6.0 : 9.0)
#define delay_us(us) delay_loops((double)(us) * F_CPU / D_C / 1000000.0))
#define delay_ms(ms) delay_loops((double)(ms) * F_CPU / D_C / 1000.0))
#define delay_s (s)  delay_loops((double)(s) * F_CPU / D_C))
Реклама:

Последний раз редактировалось zöner; 18.03.2017 в 15:18.
zöner вне форума  
Непрочитано 14.03.2017, 21:34  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от zöner Посмотреть сообщение
после некоторого бодания с асмом удалось заинлайнить функцию и асм-цикл задержки
Поздравляю... с зря потраченным временем!
STM32F0 вне форума  
Сказали "Спасибо" STM32F0
Easyrider83 (14.03.2017)
Непрочитано 14.03.2017, 21:36  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от AR_Favorit Посмотреть сообщение
а разве STM32F030 вообще умеет такое? ........... в отличие от RM0091, который идет на STM32F031...
а в чём различие... хоть догадываешься?
STM32F0 вне форума  
Непрочитано 16.03.2017, 05:07  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Кажись неплохой сайт для начинающих http://mycontroller.ru/old_site/stm3...ie/default.htm
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 16.03.2017, 09:46  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от STM32F0 Посмотреть сообщение
а в чём различие... хоть догадываешься?
Как бы то ни было, а запустить это прерывание я так и не смог.
Easyrider83 вне форума  
Непрочитано 16.03.2017, 09:51  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от STM32F0 Посмотреть сообщение
а в чём различие... хоть догадываешься?
Между Value line и Accsess line?
Неа, никаких идей...
AR_Favorit вне форума  
Непрочитано 16.03.2017, 19:58  
krug_vv
Вид на жительство
 
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 377
Сказал спасибо: 192
Сказали Спасибо 156 раз(а) в 99 сообщении(ях)
krug_vv на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от STM32F0 Посмотреть сообщение
Поздравляю... с зря потраченным временем!
Указывая на ошибку - предлагают другое решение. Не?
А то это больше похоже на пёрд в лужу.
Я, к примеру, задачу измерения или отсчета микросекундных интервалов решал с помощью таймера.
Задаю значение счетчика и смотрю флаг.
Наверняка неоптимально, зато быстро решено и точно меряет.
А вы как ее решаете?
krug_vv вне форума  
Непрочитано 20.03.2017, 15:10  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Для чего используют инжектронные каналы в ацп?
Понимаю что инжекторный канал прерывает измерение регулярного например от тригера определенного.
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 22.03.2017, 08:53  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Самое главное различие инженционных и регулярных групп каналов в том, что у группы инжекционных - отдельные регистры результата. В этой группе может быть до 4 любых физических каналов. Преобразование выполняется последовательно в заданном порядке, а результаты складываются в отдельных 4 регистра, каждый для своего канала.
В группе регулярных каналов регистр результата один, но зато все 16 каналов могут быть назначены в группу в произвольном порядке измерений. И программа по прерыванию или ДМА должны успеть забрать результат предыдущего измерения до того, как новое измерение закончится.
Группы инжекционных и регулярных каналов могут работать вместе.
Разнесение по времени - это задача программиста.
NewWriter вне форума  
Эти 2 пользователя(ей) сказали Спасибо NewWriter за это сообщение:
CERGEI1982 (22.03.2017), Sl_ (22.03.2017)
Непрочитано 22.03.2017, 10:06  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Большое спасибо за обьянении. Заметил тоже что для инжекторных сделали 4 регистра данных что заманчиво. Сейчас пытаюсь запустить преобразование по сравнению от таймера 1.
А вот инжекторные тоже можно забирать через дма результаты?
Пример ваш еще не разобрал по Dma burst, изучу как ацп до конца добью через дма и попробую в реале тогда шим с Dma burst.
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
 

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

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

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


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