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

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

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

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

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

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


 
Опции темы
Непрочитано 17.09.2011, 15:07  
el-ki
Прохожий
 
Регистрация: 14.11.2007
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
el-ki на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от tanq Посмотреть сообщение
Пусть изобретатели векторных управлятелей без датчиков попробуют управлять, посмотрим что у них получится.
А вообще мощности DSP растут, спрос нет, поэтому придумана уже новая тема: field-oriented control. Круто звучит?! Там формулы еще сложнее, умных слов еще больше, но без датчиков ниче не работает
Вы батенька отстали от жизни! Например, Combivert/Combiset приводы управляют АД и СД без датчиков полдожения, используя таки векторное управление. И стоят очень и очень дешево.
Реклама:
el-ki вне форума  
Непрочитано 17.09.2011, 15:33  
kittec
Гражданин KAZUS.RU
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от el-ki Посмотреть сообщение
Вы батенька отстали от жизни! Например, Combivert/Combiset приводы управляют АД и СД без датчиков полдожения, используя таки векторное управление. И стоят очень и очень дешево.
Всё это очень интересно и занимательно. Но эта тема называется "Изучаем STM32 Cortex M3", а не о двигателях. Создайте новую и там обсудите эти вопросы. Мне кажется многим будет интересно.
kittec вне форума  
Непрочитано 17.09.2011, 17:05  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от el-ki Посмотреть сообщение
Например, Combivert/Combiset приводы управляют АД и СД без датчиков полдожения
А где я сказал про отсутствие датчиков именно положения? Я говорил про отсутствие ЛЮБЫХ датчиков, включая датчики тока, напряжения (back-emf) и все другие.
tanq вне форума  
Непрочитано 17.09.2011, 18:06  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от kittec Посмотреть сообщение
Всё это очень интересно и занимательно. Но эта тема называется "Изучаем STM32 Cortex M3", а не о двигателях. Создайте новую и там обсудите эти вопросы. Мне кажется многим будет интересно.
Да как бы да...
Хотя... если не изменяет память... в новом CMSIS DSP-либы замутили под М3 и М4...
st_1 вне форума  
Непрочитано 19.09.2011, 00:14  
DimanVIP
Временная регистрация
 
Регистрация: 20.05.2010
Сообщений: 64
Сказал спасибо: 8
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
DimanVIP на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Есть простенький РАБОЧИЙ код, где по прерыванию таймера моргает светик:
Код:
void InitAll(void)
{	
  GPIO_InitTypeDef GPIO_Config;
  TIM_TimeBaseInitTypeDef TIM_BaseConfig;
  NVIC_InitTypeDef  NVIC_InitStructure;

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
  RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOBEN, ENABLE);

  GPIO_Config.GPIO_Pin = LD_GREEN | LD_BLUE;
  GPIO_Config.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_Config.GPIO_OType = GPIO_OType_PP;
  GPIO_Config.GPIO_Speed = GPIO_Speed_10MHz;
  GPIO_Init(LD_PORT, &GPIO_Config);

  TIM_BaseConfig.TIM_Prescaler = 1000 - 1;
  TIM_BaseConfig.TIM_Period = 8-1;
  TIM_BaseConfig.TIM_ClockDivision = 0;
  TIM_BaseConfig.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseInit(TIM4, &TIM_BaseConfig);

  TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
  TIM_ARRPreloadConfig(TIM4, ENABLE);

  NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriori  ty = 2;
  NVIC_Init(&NVIC_InitStructure);

  TIM_Cmd(TIM4, ENABLE);
}
int main(void){
	InitAll();
	while(1)
	  {}
}
Но стоит в любое место добавить инициализацию пары других ножек:
Код:
  GPIO_InitTypeDef GPIO_Config_Enc;
  RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOAEN, ENABLE);

  GPIO_Config_Enc.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
  GPIO_Config_Enc.GPIO_Mode = GPIO_Mode_IN;
  GPIO_Config_Enc.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_Config_Enc.GPIO_Speed = GPIO_Speed_10MHz;
  GPIO_Init(GPIOA, &GPIO_Config_Enc);

И не важно, каких ножек, какого порта и в каком режиме.
Можно структуру вообще не инициализировать, разницы нет.
Как прерывание перестает работать!

Что это за ерунда такая?
З.Ы.: STM32L152RB, Keil 4.21
DimanVIP вне форума  
Непрочитано 19.09.2011, 20:05  
omskcity_net
Прохожий
 
Регистрация: 23.09.2010
Сообщений: 5
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
omskcity_net на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Может надо писать так ?

RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOAEN, ENABLE);
omskcity_net вне форума  
Непрочитано 19.09.2011, 20:45  
tanq
Гражданин KAZUS.RU
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

DimanVIP,
Говорилось уже, переставайте использовать либы. Если регистры четко описаны в мануале, то что такое RCC_AHBPeriphClockCmd и как именно оно работает совершенно непонятно. Т.е. снижается читабельность + растет объем писанины.
tanq вне форума  
Непрочитано 19.09.2011, 21:37  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от DimanVIP Посмотреть сообщение
Что это за ерунда такая?
Что понаписали, то и получили...
Сообщение от DimanVIP Посмотреть сообщение
Есть простенький РАБОЧИЙ код, где по прерыванию таймера моргает светик:
Но стоит в любое место добавить инициализацию пары других ножек:
Как прерывание перестает работать!
Как прерывание перестает работать???
У вас не срабатывает само прерывание??? Или не получаете ожидаемых действий в самом прерывании (не моргает светодиод)???
И где сам текст процедуры прерывания???
st_1 вне форума  
Непрочитано 20.09.2011, 09:25  
pve70
Временная регистрация
 
Регистрация: 09.02.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
pve70 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Есть у кого нормальный код работы с SD-картами по SPI?
А то у китаез в примерах карты через раз определяются, Kingston и Apacer - нормально, остальные плохо. К тому же повесил на этот же SPI сенсорный контроллер ADS7843 - не хочет он одновременно работать с SD картой - при чтени хрень всякую выдает, видимо в процессе работы с SD-картой у SPI на ходу режимы меняются. Но на 128-й меге у меня же все работало и дружили на одном SPI и карты и сенсор !
pve70 вне форума  
Непрочитано 20.09.2011, 10:53  
a-fisher
Прописка
 
Аватар для a-fisher
 
Регистрация: 15.11.2007
Адрес: СПБ
Сообщений: 214
Сказал спасибо: 37
Сказали Спасибо 42 раз(а) в 34 сообщении(ях)
a-fisher на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от DimanVIP Посмотреть сообщение
Есть простенький РАБОЧИЙ код, где по прерыванию таймера моргает светик:
Код:
void InitAll(void)
{	
  GPIO_InitTypeDef GPIO_Config;
  TIM_TimeBaseInitTypeDef TIM_BaseConfig;
  NVIC_InitTypeDef  NVIC_InitStructure;

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
  RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOBEN, ENABLE);

  GPIO_Config.GPIO_Pin = LD_GREEN | LD_BLUE;
  GPIO_Config.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_Config.GPIO_OType = GPIO_OType_PP;
  GPIO_Config.GPIO_Speed = GPIO_Speed_10MHz;
  GPIO_Init(LD_PORT, &GPIO_Config);

  TIM_BaseConfig.TIM_Prescaler = 1000 - 1;
  TIM_BaseConfig.TIM_Period = 8-1;
  TIM_BaseConfig.TIM_ClockDivision = 0;
  TIM_BaseConfig.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseInit(TIM4, &TIM_BaseConfig);

  TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
  TIM_ARRPreloadConfig(TIM4, ENABLE);

  NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriori  ty = 2;
  NVIC_Init(&NVIC_InitStructure);

  TIM_Cmd(TIM4, ENABLE);
}
int main(void){
	InitAll();
	while(1)
	  {}
}
Но стоит в любое место добавить инициализацию пары других ножек:
Код:
  GPIO_InitTypeDef GPIO_Config_Enc;
  RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOAEN, ENABLE);

  GPIO_Config_Enc.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
  GPIO_Config_Enc.GPIO_Mode = GPIO_Mode_IN;
  GPIO_Config_Enc.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_Config_Enc.GPIO_Speed = GPIO_Speed_10MHz;
  GPIO_Init(GPIOA, &GPIO_Config_Enc);

И не важно, каких ножек, какого порта и в каком режиме.
Можно структуру вообще не инициализировать, разницы нет.
Как прерывание перестает работать!

Что это за ерунда такая?
З.Ы.: STM32L152RB, Keil 4.21
Ну дык Вы же делаете новую структуру конфигурации и иницилизируете ее - старая, где таймеры были настроены - заменяется новой, где таймера нет. делать инициализацию нужно ОДИН раз и в ОДНОМ месте. Просто добавте необходимые строки для GPIO_Config перед GPIO_Init и все. GPIO_Init в качестве параметра имеет структуру с описанием сразу всего и инициализирует сразу все, а не только то, что Вы указали явно. Вызываться должноа только 1 раз. Если Вы хотите что-то включить по ходу выполнения программы, то Вам нужно внести изменения в имеющуюся структуру, потом делать переиниализацию. Но, IMHO, это некорректно. Лучше уж "ручками" через регистры по даташиту.

Последний раз редактировалось a-fisher; 20.09.2011 в 11:00. Причина: дополнение
a-fisher вне форума  
 

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

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

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:07.


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