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

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

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

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

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

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


 
Опции темы
Непрочитано 12.10.2014, 03:12  
Slava-martyn
Вид на жительство
 
Аватар для Slava-martyn
 
Регистрация: 07.09.2007
Адрес: Дерёвня Ишимбай
Сообщений: 419
Сказал спасибо: 65
Сказали Спасибо 136 раз(а) в 87 сообщении(ях)
Slava-martyn на пути к лучшему
По умолчанию STM32F100 IAR 7.20 не выходит в прерывание

Уже второй раз берусь за прерывания, но без положительного результата, хотя уже чуть лучше.
Микроконтроллер STM32F100RBT6B на отладочной плате Discovery тактовая частота 8 МГц, программа написана в IAR C/C++ Compiler for ARM 7.20.5.7591.
При прерывании заходит в startup_stm32f10x_md_vl.s и крутится на строчке "B TIM6_DAC_IRQHandler"
Почему не выходит на функцию обработки прерывания?
void TIM6_DAC_IRQHandler(void)
Проект во вложении
Цитата:
PHP код:
#include "stm32f10x.h"
#include "stm32f10x_conf.h"

int state=0;


void TIM6_DAC_IRQHandler(void)
{
  if (
TIM_GetITStatus(TIM6TIM_IT_Update) != RESET)
  {
    
TIM_ClearITPendingBit(TIM6TIM_IT_Update);
    if(
state)
      
GPIO_WriteBit(GPIOCGPIO_Pin_8Bit_SET);
    else
      
GPIO_WriteBit(GPIOCGPIO_Pin_8Bit_RESET);
    
state state;
  }
}

int main()
{
  
//RCC-›APB2ENR |= RCC_APB2ENR_IOPCEN;
  
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOCENABLE);
  
  
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6ENABLE);
  
  
//GPIOC-›CRH |= GPIO_CRH_MODE9_0 | GPIO_CRH_MODE9_1;
  //GPIOC-›CRH &= ~GPIO_CRH_CNF9;
  
GPIO_InitTypeDef GPIO_InitStructure;
  
GPIO_InitStructure.GPIO_Speed GPIO_Speed_2MHz;
  
GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP;
  
GPIO_InitStructure.GPIO_Pin GPIO_Pin_8;
  
GPIO_Init(GPIOC, &GPIO_InitStructure);
  
  
TIM_TimeBaseInitTypeDef TIM_InitStructure;  // Заводим структуру
  
TIM_TimeBaseStructInit(&TIM_InitStructure); // Инициализация структуры
  
TIM_InitStructure.TIM_Prescaler 24000;    // Предделитель
  
TIM_InitStructure.TIM_Period 1000;        // Период таймера
  
TIM_TimeBaseInit(TIM6, &TIM_InitStructure); // Функция настройки таймера
  
TIM_Cmd(TIM6ENABLE);                      // Включение таймера
  
  
NVIC_EnableIRQ(TIM6_DAC_IRQn);  
  
TIM_ITConfig(TIM6TIM_DIER_UIEENABLE);
  
  while(
1)
  {
  
/*  GPIO_WriteBit(GPIOC, GPIO_Pin_8, Bit_SET);
    for (volatile unsigned int i=0; i‹100000; i++)
    {
    }
    GPIO_WriteBit(GPIOC, GPIO_Pin_8, Bit_RESET);
    for (volatile unsigned int i=0; i‹100000; i++)
    {
    }  */  
  
}
  
  
//return 0;

http://otvet.mail.ru/question/44328930
Вложения:
Тип файла: rar stm2.rar (5.49 Мб, 27 просмотров)
Реклама:

Последний раз редактировалось Slava-martyn; 12.10.2014 в 03:18.
Slava-martyn вне форума  
Непрочитано 16.10.2014, 00:32  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: STM32F100 IAR 7.20 не выходит в прерывание

Slava-martyn у тебя проект под С++ = имена функций манглятся и линкер их не видит.
или настрой проект как "С-проект" или объяви функцию обработчика как сишную

// где то в файле *.cpp
extern "C" void [имя твоего хандлера прерывания] (void);
Hives вне форума  
Сказали "Спасибо" Hives
Slava-martyn (18.10.2014)
Непрочитано 16.10.2014, 01:12  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32F100 IAR 7.20 не выходит в прерывание

А почему "startup_stm32f10x_md_vl.s"?
Это же линейка ld_vl?
Easyrider83 вне форума  
Непрочитано 18.10.2014, 22:20  
Slava-martyn
Вид на жительство
 
Аватар для Slava-martyn
 
Регистрация: 07.09.2007
Адрес: Дерёвня Ишимбай
Сообщений: 419
Сказал спасибо: 65
Сказали Спасибо 136 раз(а) в 87 сообщении(ях)
Slava-martyn на пути к лучшему
По умолчанию Re: STM32F100 IAR 7.20 не выходит в прерывание

Сообщение от Hives Посмотреть сообщение
настрой проект как "С-проект"
Так и хотел попробовать, но не знал даст ли результат.

Сообщение от Easyrider83 Посмотреть сообщение
Это же линейка ld_vl?
Поменял, а как определять?

Сейчас заходит один раз в прерывание и потом переходит на
PHP код:
    /* Wait till PLL is ready */
    
while((RCC-›CR RCC_CR_PLLRDY) == 0)
    {
    } 
Вложения:
Тип файла: rar stm3.rar (5.51 Мб, 24 просмотров)

Последний раз редактировалось Slava-martyn; 18.10.2014 в 22:23.
Slava-martyn вне форума  
Непрочитано 19.10.2014, 02:38  
Slava-martyn
Вид на жительство
 
Аватар для Slava-martyn
 
Регистрация: 07.09.2007
Адрес: Дерёвня Ишимбай
Сообщений: 419
Сказал спасибо: 65
Сказали Спасибо 136 раз(а) в 87 сообщении(ях)
Slava-martyn на пути к лучшему
По умолчанию Re: STM32F100 IAR 7.20 не выходит в прерывание

Разобрался!
Забыл программу зашить http://we.easyelectronics.ru/uploads.../30/a9b9c3.jpg
Теперь всё работает. Всем спасибо!

На плате

STM32F100RBT6B microcontroller, 128 KB Flash, 8 KB RAM in 64-pin LQFP

- Medium-density value line devices are STM32F100xx microcontrollers where the
Flash memory density ranges between 64 and 128 Kbytes.

Хотя у меня всё равно ограниченная версия IARа.

Последний раз редактировалось Slava-martyn; 19.10.2014 в 02:52.
Slava-martyn вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прерывание по совпадению таймера 1 gruffi AVR 38 21.10.2016 22:58
Подниму тему WinAVR vs IAR oleg110592 Микроконтроллеры, АЦП, память и т.д 5 24.10.2015 14:06


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


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