реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Не включается прерывание
anubis
сообщение Nov 22 2013, 11:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-01-06
Пользователь №: 13 178



Всем привет!

При компиляции выдает ошибку

:18: error: 'TIM6_DAC_IRQn' undeclared (first use in this function)

библиотеки подключены и т.д. Помоги пожалуйста разобраться

Код
#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"

uint32_t i=0;

void Delay(volatile uint32_t nCount) {
    for (; nCount != 0; nCount--);
}

int main(void)
{

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);

  /* Включаем таймер 6 */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);

  /* Настраиваем ногу ЦАПа */
  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

  TIM6->PSC = 0;
  TIM6->ARR = 500;
  TIM6->DIER |= TIM_DIER_UIE; //разрешаем прерывание от таймера
  TIM6->CR1 |= TIM_CR1_CEN; // Начать отсчёт!
  NVIC_EnableIRQ(TIM6_DAC_IRQn); //Разрешение TIM6_DAC_IRQn прерывания

  DAC->CR |= DAC_CR_BOFF1;
  DAC->CR |= DAC_CR_EN1;

  while (1)
  {
//Delay(1000); //x Ticks
  }
}

/*Обработчик прерывания от таймера 6 */
void TIM6_DAC_IRQHandler(void)
{
    TIM6->SR &= ~TIM_SR_UIF; //Сбрасываем флаг UIF
    DAC->DHR12R1=2048; //Запихиваем в ЦАП очередной элемент массива
}
Go to the top of the page
 
+Quote Post
smk
сообщение Nov 22 2013, 11:57
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Код
/*Обработчик прерывания от таймера 6 */
void TIM6_IRQHandler(void)
{
    TIM6->SR &= ~TIM_SR_UIF; //Сбрасываем флаг UIF
    DAC->DHR12R1=2048; //Запихиваем в ЦАП очередной элемент массива
}


и вынесете это перед main.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
nowhow
сообщение Nov 22 2013, 12:00
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 29-03-11
Из: Санкт-Петербург
Пользователь №: 63 968



По русски же написано что не объявлен идентификатор вектора прерывания,
значит не подключен хедер, который отвечает за таблицу векторов прерывания для необходимого Вам микроконтроллера.
Go to the top of the page
 
+Quote Post
smk
сообщение Nov 22 2013, 12:28
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



startup_stm32f10x_ld_vl.s что-то подобное в проекте присутствует?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 22 2013, 12:49
Сообщение #5


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(anubis @ Nov 22 2013, 17:39) *
:18: error: 'TIM6_DAC_IRQn' undeclared (first use in this function)

У вас не определён (или определён неверно) тип используемого процессора.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
anubis
сообщение Nov 22 2013, 13:07
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-01-06
Пользователь №: 13 178



Цитата(AHTOXA @ Nov 22 2013, 16:49) *
У вас не определён (или определён неверно) тип используемого процессора.

Указан STM32F107VC и STM32F10X_CL.
в файле stm32f10x.h у STM32F10X_CL нет поля TIM6_DAC_IRQn.
Подскажите какой нужно указать или что еще можно сделать?

Цитата(smk @ Nov 22 2013, 16:28) *
startup_stm32f10x_ld_vl.s что-то подобное в проекте присутствует?

Подключен startup_stm32f10x_cl.c
Go to the top of the page
 
+Quote Post
smk
сообщение Nov 22 2013, 13:44
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



system_stm32f10x.c это само собой.
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC underrun - строчка из startup_stm32f10x_ld_vl.s


а компилятор то какой?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 22 2013, 16:58
Сообщение #8


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(anubis @ Nov 22 2013, 19:07) *
Указан STM32F107VC и STM32F10X_CL.
в файле stm32f10x.h у STM32F10X_CL нет поля TIM6_DAC_IRQn.
Подскажите какой нужно указать или что еще можно сделать?

Если у вас STM32F107VC, то у него это называется TIM6_IRQn.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
anubis
сообщение Nov 23 2013, 10:32
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-01-06
Пользователь №: 13 178



Цитата(AHTOXA @ Nov 22 2013, 20:58) *
Если у вас STM32F107VC, то у него это называется TIM6_IRQn.



Спасибо большое, это помогло. Заработало

Спасибо всем за помощь!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01435 секунд с 7
ELECTRONIX ©2004-2016