Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не определяются имена регистров SPMCSR и др
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
alux
Почему компилятор не определяет имена некоторых регистров в частности SPMCSR и TIMSK0 ? В опциях проекта выбран Mega324P. Файл <ioavr.h> подключен. Enable bit defenition in I/O галочка поставлена. Уже не знаю где еще копать. Конечно, можно определить вручную недостающие имена. Но я не верю, что нельзя это сделать каким-либо стандартным способом.
В своем хидере пишу:
Код
#include <ioavr.h>

#ifdef TIMSK0
#define TIMSK TIMSK0
#endif

#if defined(SPMCSR)
  #define SPM_CONTROL_REG SPMCSR
#elif defined(SPMCR)
  #define SPM_CONTROL_REG SPMCR
#else
  #error "SPM control register not defined"
#endif
help.gif
IgorKossak
Если Вы работаете в IAR, то там регистры определены не через define, а через sfrb/sfrw.
Стандартный способ для IAR это делать выбор по имени МК, как это делается в ioavr.h

Код
#include <ioavr.h>

#if defined(__ATmega88__)
  #define SPM_CONTROL_REG SPMCSR
#elif defined(что-то другое)
  #define SPM_CONTROL_REG SPMCR
#else
  #error "SPM control register not defined"
#endif

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