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

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

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

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

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

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


Закрытая тема
Опции темы
Непрочитано 07.08.2012, 12:59   #21
sosedi
Частый гость
 
Регистрация: 31.07.2012
Сообщений: 45
Сказал спасибо: 28
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
sosedi на пути к лучшему
По умолчанию Re: stm32f4, asm с чего начать?

Сообщение от dosikus Посмотреть сообщение
sosedi, Скачиваете с оффсайта STL http://www.st.com/internet/mcu/product/252144.jsp

Ищите в Example пример с EXTI , смотрите как реализовано и переделываете на CMSIS , анализируя STL . Одновременно медитируя с даташитом ...
Тк я вот как раз, сейчас, этим и занимаюсь) Но яж говорю- я не могу понять как задавать опред значения регистрам!Example я изучил, понял что зачем нужно, но как переделать в CMSIS???
Вот к примеру: регистр SYSCFG_EXTICR1 в нем уснатавливается порт для прерываний!Тк как в CMSIS задать порт?
Мне нужен не конкретный ответ, а как в общем случае все ищется в CMSIS?
Реклама:
sosedi вне форума  
Непрочитано 07.08.2012, 13:09   #22
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: stm32f4, asm с чего начать?

У Стаса были проблемы с клавой. Решил проверить на пупках ^C -› ^V.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 07.08.2012, 13:32   #23
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: stm32f4, asm с чего начать?

sosedi, Вот пример оттуда :

Код:
void EXTILine0_Config(void)
{
  EXTI_InitTypeDef   EXTI_InitStructure;
  GPIO_InitTypeDef   GPIO_InitStructure;
  NVIC_InitTypeDef   NVIC_InitStructure;

  /* Enable GPIOA clock */
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
  /* Enable SYSCFG clock */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
  
  /* Configure PA0 pin as input floating */
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

  /* Connect EXTI Line0 to PA0 pin */
  SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);

  /* Configure EXTI Line0 */
  EXTI_InitStructure.EXTI_Line = EXTI_Line0;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;  
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);

  /* Enable and set EXTI Line0 Interrupt to the lowest priority */
  NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriori  ty = 0x0F;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}

До
Код:
 /* Connect EXTI Line0 to PA0 pin */
  SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);
Надеюсь все понятно ?

Далее лезем в STL stm32f4xx_syscfg.c находим определение SYSCFG_EXTILineConfig();
Код:
void SYSCFG_EXTILineConfig(uint8_t EXTI_PortSourceGPIOx, uint8_t EXTI_PinSourcex)
{
  uint32_t tmp = 0x00;

  /* Check the parameters */
  assert_param(IS_EXTI_PORT_SOURCE(EXTI_PortSourceGP  IOx));
  assert_param(IS_EXTI_PIN_SOURCE(EXTI_PinSourcex));

  tmp = ((uint32_t)0x0F) ‹‹ (0x04 * (EXTI_PinSourcex & (uint8_t)0x03));
  SYSCFG-›EXTICR[EXTI_PinSourcex ›› 0x02] &= ~tmp;
  SYSCFG-›EXTICR[EXTI_PinSourcex ›› 0x02] |= (((uint32_t)EXTI_PortSourceGPIOx) ‹‹ (0x04 * (EXTI_PinSourcex & (uint8_t)0x03)));
}
Лезем в хэдеры и ищем определения всей этой хрени , анализируем и переделываем ...

Код:
 
typedef struct
{
  __IO uint32_t MEMRMP;       /*!‹ SYSCFG memory remap register,                      Address offset: 0x00      */
  __IO uint32_t PMC;          /*!‹ SYSCFG peripheral mode configuration register,     Address offset: 0x04      */
  __IO uint32_t EXTICR[4];    /*!‹ SYSCFG external interrupt configuration registers, Address offset: 0x08-0x14 */
  uint32_t      RESERVED[2];  /*!‹ Reserved, 0x18-0x1C                                                          */ 
  __IO uint32_t CMPCR;        /*!‹ SYSCFG Compensation cell control register,         Address offset: 0x20      */
} SYSCFG_TypeDef;
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 07.08.2012 в 13:45.
dosikus вне форума  
Сказали "Спасибо" dosikus
sosedi (07.08.2012)
Непрочитано 07.08.2012, 14:37   #24
sosedi
Частый гость
 
Регистрация: 31.07.2012
Сообщений: 45
Сказал спасибо: 28
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
sosedi на пути к лучшему
Радость Re: stm32f4, asm с чего начать?

Код:
 
typedef struct
{
  __IO uint32_t MEMRMP;       /*!‹ SYSCFG memory remap register,                      Address offset: 0x00      */
  __IO uint32_t PMC;          /*!‹ SYSCFG peripheral mode configuration register,     Address offset: 0x04      */
  __IO uint32_t EXTICR[4];    /*!‹ SYSCFG external interrupt configuration registers, Address offset: 0x08-0x14 */
  uint32_t      RESERVED[2];  /*!‹ Reserved, 0x18-0x1C                                                          */ 
  __IO uint32_t CMPCR;        /*!‹ SYSCFG Compensation cell control register,         Address offset: 0x20      */
} SYSCFG_TypeDef;
[/QUOTE]

Спасибо большое за очень подробный ответ)
Подскажите я правильно Вас понял, т.е для того что бы задать SYSCFG_EXTICR1 регистр можно написать так:
Код:
SYSCFG-›EXTICR[1] = 0;
тем самым я определю первые 4-ре ноги порта А для прерываний!

Последний раз редактировалось sosedi; 07.08.2012 в 14:40.
sosedi вне форума  
Непрочитано 07.08.2012, 15:08   #25
sosedi
Частый гость
 
Регистрация: 31.07.2012
Сообщений: 45
Сказал спасибо: 28
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
sosedi на пути к лучшему
По умолчанию Re: stm32f4, asm с чего начать?

А вот еще по поводу структур:

Цитата:
EXTI_GenerateSWInterrupt(EXTI_Line0);

EXTI_InitStructure.EXTI_Line = EXTI_Line0;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
Оно то понятно что тут идет стандартная настройка (выбор ноги,фронта т.д), но откуда берутся все эти переменные EXTI_Line = EXTI_Line0, EXTI_Mode = EXTI_Mode_Interrupt, EXTI_LineCmd = ENABLE. Где они объявлены?
sosedi вне форума  
Непрочитано 07.08.2012, 15:08   #26
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: stm32f4, asm с чего начать?

Сообщение от sosedi Посмотреть сообщение
тем самым я определю первые 4-ре ноги порта А для прерываний!
Угу . Правильно.
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
sosedi (07.08.2012)
Непрочитано 07.08.2012, 15:11   #27
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: stm32f4, asm с чего начать?

Сообщение от sosedi Посмотреть сообщение
но откуда берутся все эти переменные
Смотрите хидеры .Тот же stm32f4xx_exti.h.
Код:
typedef struct
{
  uint32_t EXTI_Line;               /*!‹ Specifies the EXTI lines to be enabled or disabled.
                                         This parameter can be any combination value of @ref EXTI_Lines */
   
  EXTIMode_TypeDef EXTI_Mode;       /*!‹ Specifies the mode for the EXTI lines.
                                         This parameter can be a value of @ref EXTIMode_TypeDef */

  EXTITrigger_TypeDef EXTI_Trigger; /*!‹ Specifies the trigger signal active edge for the EXTI lines.
                                         This parameter can be a value of @ref EXTITrigger_TypeDef */

  FunctionalState EXTI_LineCmd;     /*!‹ Specifies the new state of the selected EXTI lines.
                                         This parameter can be set either to ENABLE or DISABLE */ 
}EXTI_InitTypeDef;

...................................
#define EXTI_Line0       ((uint32_t)0x00001)     /*!‹ External interrupt line 0 */
#define EXTI_Line1       ((uint32_t)0x00002)     /*!‹ External interrupt line 1 */
#define EXTI_Line2       ((uint32_t)0x00004)     /*!‹ External interrupt line 2 */
#define EXTI_Line3       ((uint32_t)0x00008)     /*!‹ External interrupt line 3 */
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 07.08.2012 в 15:16.
dosikus вне форума  
Сказали "Спасибо" dosikus
sosedi (07.08.2012)
Непрочитано 07.08.2012, 15:15   #28
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: stm32f4, asm с чего начать?

Вообщем смысл такой: в STL настройки модулей передаются через структуры .
Вы заполняете структуру , функции STL считывают ее и заполняют регистры модуля периферии.
Естественно можно исключить эту универсальную хрень и конфигурировать
модуль "вручную".

Тьфу ты ... Правильно не STL а SPL ...
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 07.08.2012 в 15:21.
dosikus вне форума  
Сказали "Спасибо" dosikus
sosedi (07.08.2012)
Непрочитано 07.08.2012, 15:58   #29
sosedi
Частый гость
 
Регистрация: 31.07.2012
Сообщений: 45
Сказал спасибо: 28
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
sosedi на пути к лучшему
Радость Re: stm32f4, asm с чего начать?

Блин, опять непонятки((Чет я туплю наверно. После EXTI мы должны настроить NVIC!!!Я весь даташит перерыл и ничего кроме приоритета прерываний про NVIC не нашел ((
чтож тогда здесь настраивается?
Код:
  NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriori  ty = 0x01;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
sosedi вне форума  
Непрочитано 07.08.2012, 16:02   #30
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: stm32f4, asm с чего начать?

Прерывание от EXTI и его приоритет же ...
Цитата:
PM0214
Programming manual
4.3 Nested vectored interrupt controller (NVIC)
стр. 194
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
sosedi (07.08.2012)
Закрытая тема

Закладки


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С чего начать? ourlive Электроника - это просто 179 17.04.2012 23:02
С чего начать? nickdkn Электроника - это просто 9 12.07.2011 20:13
С чего начать? Митрофаныч Микроконтроллеры, АЦП, память и т.д 17 03.10.2010 21:18
PICи - с чего начать? Alexxx2005 Микроконтроллеры, АЦП, память и т.д 11 27.05.2007 01:37
C чего начать? melkij Микроконтроллеры, АЦП, память и т.д 11 21.08.2006 13:39


Часовой пояс GMT +4, время: 17:46.


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