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

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

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

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

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

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


 
Опции темы

stm32f4, asm с чего начать?

Непрочитано 07.08.2012, 12:59  
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  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: stm32f4, asm с чего начать?

У Стаса были проблемы с клавой. Решил проверить на пупках ^C -› ^V.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 07.08.2012, 13:32  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
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  
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  
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  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: stm32f4, asm с чего начать?

Сообщение от sosedi Посмотреть сообщение
тем самым я определю первые 4-ре ноги порта А для прерываний!
Угу . Правильно.
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
sosedi (07.08.2012)
Непрочитано 07.08.2012, 15:11  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
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  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
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  
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  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
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, время: 22:35.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.