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

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

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

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

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

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


Ответ
Опции темы
Непрочитано 29.09.2011, 23:42   #811
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от qwerky Посмотреть сообщение
откуда оно узнает частоту кварца ? телепатирует ?
не, она там дефайнится. Применяется при рассчете PLL. Только в этом случае нам ее только в одном месте указывать приходится.
А я вообще такую функцию использовал:
Цитата:
void delay_us(unsigned long nTime)
{
nTime=((CPU_CLOCK/1000)/K_Const)*nTime;
while(nTime != 0)
{nTime--;}
}
Где K_Const подбирал по анализатору под каждый проц. Для STM32 она равна 4000. Для LPC2xxx 2000. Ну а частота просто дефайнилась в хеадере.
Цитата:
#define CPU_CLOCK 24000000
Надо сказать, работает с великолепной точностью. При 500мс отклонение не более 1мс.
Реклама:
Easyrider83 вне форума   Ответить с цитированием
Непрочитано 29.09.2011, 23:48   #812
qwerky
Вид на жительство
 
Регистрация: 21.11.2009
Сообщений: 342
Сказал спасибо: 4
Сказали Спасибо 149 раз(а) в 66 сообщении(ях)
qwerky на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
не, она там дефайнится. Применяется при рассчете PLL.
ну вот, а вы пишете что усё автоматом. Замените в моем куске F_CPU на CPU_CLOCK - тоже будет автоматически
Сообщение от Easyrider83 Посмотреть сообщение
А я вообще такую функцию использовал
во 1-х при каждом вызове вычисляется nTime, во 2-х содержимое цикла зависит от флагов компиляции и оптимизации, плюс нужно учитывать задержку работы с памятью
qwerky вне форума   Ответить с цитированием
Непрочитано 29.09.2011, 23:50   #813
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

qwerky, это все верно. Я искал альтернативу, написанную на асме. Вы ее и подкинули.
Пока только не компилируется никак. Но это я потом решу. Сейчас спать хочется.
Easyrider83 вне форума   Ответить с цитированием
Непрочитано 30.09.2011, 00:40   #814
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от qwerky Посмотреть сообщение
откуда оно узнает частоту кварца ? телепатирует ?
Ващето... если Кейл... частота кварца указывается в свойствах проекта...
Далее, если использовать SysTick, уже ничего делать не надо... И не волнует... STM32F100 в проекте, STM32F103 или STMF205...
st_1 вне форума   Ответить с цитированием
Непрочитано 30.09.2011, 00:50   #815
qwerky
Вид на жительство
 
Регистрация: 21.11.2009
Сообщений: 342
Сказал спасибо: 4
Сказали Спасибо 149 раз(а) в 66 сообщении(ях)
qwerky на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Цитата:
Ващето... если Кейл... частота кварца указывается в свойствах проекта...
понятно, мой пример для avr-gcc/eclipse/cmsis. Оказывается в CMSIS за тактирование отвечают символы HSI_VALUE и HSE_VALUE, по умолчанию настроены на 8МГц
Сообщение от st_1 Посмотреть сообщение
Далее, если использовать SysTick, уже ничего делать не надо... И не волнует...
SysTick-ом удобнее генерировать системный тик, иначе придется выделять под это целый таймер

Последний раз редактировалось qwerky; 30.09.2011 в 00:54.
qwerky вне форума   Ответить с цитированием
Непрочитано 30.09.2011, 12:04   #816
dccharacter
Временная регистрация
 
Регистрация: 28.03.2010
Сообщений: 56
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
dccharacter на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Зная вашу любовь к библиотекам все же рискну спросить.

Пользуюсь CooCox IDE, собираю проект из драйверов, хочу помигать светодиодом. Т.е. просто инвертировать значение на ноге.

Есть варианты.
1. GPIO_SetBits/GPIO_ResetBits. Проблема в том, что для того, чтобы инвертировать значение на ноге, надо его сначала прочитать, потом сделать условие по значению и т.д. - долго, дорого. При этом в функции используется идеологически правильное манипулирование битами через спец-регистры:
"Atomic bit manipulation is supported ... through two dedicated bit manipulation registers."
2. Использовать функцию GPIO_WriteBit (GPIOx, Pinx, value). Опять же - value надо прочитать функцией GPIO_ReadInput - долго, дорого. Но в итоге в сухом остатке - те же регистры манипулирования.
3. Было бы лучше всего для задачи использовать бит-бендинг:
#define PortBbit8 (*((volatile unsigned long *) 0x422181A0 ))
Но я нигде ни CMSIS, ни в драйверах ST/COX не нахожу дефайнов адресов бит-бэнд регионов.

Внимание, вопрос - есть ли где-то хидеры с этими дефайнами для STM32F100RB ???
dccharacter вне форума   Ответить с цитированием
Непрочитано 30.09.2011, 17:31   #817
Batisto4ka
Временная регистрация
 
Регистрация: 19.05.2010
Сообщений: 78
Сказал спасибо: 10
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
Batisto4ka на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Подскажите пожалуйста, кто работал с ШИМ в stm32. К ноге 7 порта С подключен светодиод, частотой мигания которой необходимо управлять. допустим просто настроим стабильную частоту работы сдлительностью импульса в 50% от период шим код такой:
Код:
GPIOC-›CRH|=GPIO_CRH_CNF8_1; //альтернативная функция
GPIOC-›CRH|=GPIO_CRH_MODE8; //альтернативная функция на выходе
void InitTmr13 (void)
{
// Подаем такты на таймер
RCC-›APB1ENR|=0x00000080;
// устанавливаем предделитель
TIM13-›PSC = 23999; //24МГц/24Кгц=1000 Гц
// задаем период ШИМ //пусть частота ШИМ будет 50 Гц
TIM13-›ARR = 20;
// начальную длительность импульса
TIM13-›CCR1 = 1;
//Режимы работы ШИМ: PWM mode 1 - Channel 1 is active as long as //TIMx_CNT‹TIMx_CCR1 else inactive.
TIM13-›CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1PE;
// разрешаем выходной сигнал
TIM13-›CCER = TIM_CCER_CC1E;
TIM13-›BDTR = TIM_BDTR_MOE;
// разрешаем работу и автоперезагрузку
TIM13-›CR1 = TIM_CR1_CEN | TIM_CR1_ARPE;
}
По идее запустив функцию InitTmr13 светодиод уже должен мигать с частотой, равной 1/20 от частоты ШИМ? То есть 2,5 Гц????
Или я неправильно настроила или я чего-то не понимаю?
Batisto4ka вне форума   Ответить с цитированием
Непрочитано 30.09.2011, 18:06   #818
shyub
Прописка
 
Регистрация: 20.08.2008
Сообщений: 260
Сказал спасибо: 305
Сказали Спасибо 76 раз(а) в 42 сообщении(ях)
shyub на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Как вариант, могу предложить вот такую реализацию задержки для STM32F100:
//-----------------------------------------------------------------
#define bool char
#define true 0x7F
#define false 0x00
//-----------------------------------------------------------------
bool flag_delay; // Флаг используется для организации задержек.
//-----------------------------------------------------------------
void SysTick_Handler(void) // Обслуживание задержек ЖКИ.
{
SysTick-›CTRL=0; // Остановить SysTick, сбросить флаг прерывания.
flag_delay=false; // Задержка закончилась.
}
//-----------------------------------------------------------------
void My_delay_mks(int t) // Задержка (до 5 сек). t=tзад*3 мксек.
{
flag_delay=true;
SysTick-›LOAD=t; // Длительность задержки.
SysTick-›CTRL=0x00000002; // f HCLK /8;
SysTick-›CTRL |= 1; // Запуск.
while(flag_delay); // Ожидание окончания задержки.
}
shyub вне форума   Ответить с цитированием
Непрочитано 30.09.2011, 18:20   #819
shyub
Прописка
 
Регистрация: 20.08.2008
Сообщений: 260
Сказал спасибо: 305
Сказали Спасибо 76 раз(а) в 42 сообщении(ях)
shyub на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

[QUOTE=dccharacter;426718]Зная вашу любовь к библиотекам все же рискну спросить.

Для опроса и установки ножек лучше не использовать библиотеки, а напрямую обращаться к GPIOx-›IDR (ODR, DSRR или BRR).
Во-первых, получается более быстрый код (нет перехода к подпраграммам), во-вторых, программа меньше "кушает" памяти, в-третьих, (чисто субъективное мнение) меньше путаницы.

Библиотеки лучше использовать (опять-таки субъективное мнение), где иначе сложно справиться с решаемой задачей, например для создания USB-Hosta, организации Eternet-протокола и т.п.
shyub вне форума   Ответить с цитированием
Непрочитано 30.09.2011, 18:35   #820
dccharacter
Временная регистрация
 
Регистрация: 28.03.2010
Сообщений: 56
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
dccharacter на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от shyub Посмотреть сообщение
Для опроса и установки ножек лучше не использовать библиотеки
Так я и не собираюсь Я спрашиваю есть ли где-то алиасы на бит-банд адреса?
dccharacter вне форума   Ответить с цитированием
Ответ

Закладки


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

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


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