Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не включается прерывание
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
anubis
Всем привет!

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

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


и вынесете это перед main.
nowhow
По русски же написано что не объявлен идентификатор вектора прерывания,
значит не подключен хедер, который отвечает за таблицу векторов прерывания для необходимого Вам микроконтроллера.
smk
startup_stm32f10x_ld_vl.s что-то подобное в проекте присутствует?
AHTOXA
Цитата(anubis @ Nov 22 2013, 17:39) *
:18: error: 'TIM6_DAC_IRQn' undeclared (first use in this function)

У вас не определён (или определён неверно) тип используемого процессора.
anubis
Цитата(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
smk
system_stm32f10x.c это само собой.
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC underrun - строчка из startup_stm32f10x_ld_vl.s


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

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



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

Спасибо всем за помощь!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.