Константа с моделью контроллера

Jmurkin
Offline
Зарегистрирован: 03.05.2017

Какое имя и тип константы, говорящей о типе микроконтроллера?  Должна быть где-то в include или define

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

MCU_TARGET

Jmurkin
Offline
Зарегистрирован: 03.05.2017

Компилятор пишет не определена такая константа. Наверное нужен заголовочный файл с typedef

Нашел в демо-проекте непонятный файл  Program Files/Arduino/hardware/tools/avr/doc/avr-libc/avr-libc-user-manual/group__demo__project.html
 

PRG            = demo
OBJ            = demo.o
#MCU_TARGET     = at90s2313
#MCU_TARGET     = at90s2333
#MCU_TARGET     = at90s4414
#MCU_TARGET     = at90s4433
#MCU_TARGET     = at90s4434
#MCU_TARGET     = at90s8515
#MCU_TARGET     = at90s8535
#MCU_TARGET     = atmega128
#MCU_TARGET     = atmega1280
#MCU_TARGET     = atmega1281
#MCU_TARGET     = atmega1284p
#MCU_TARGET     = atmega16
#MCU_TARGET     = atmega163
#MCU_TARGET     = atmega164p
#MCU_TARGET     = atmega165
#MCU_TARGET     = atmega165p
#MCU_TARGET     = atmega168
#MCU_TARGET     = atmega169
#MCU_TARGET     = atmega169p
#MCU_TARGET     = atmega2560
#MCU_TARGET     = atmega2561
#MCU_TARGET     = atmega32
#MCU_TARGET     = atmega324p
#MCU_TARGET     = atmega325
#MCU_TARGET     = atmega3250
#MCU_TARGET     = atmega329
#MCU_TARGET     = atmega3290
#MCU_TARGET     = atmega48
#MCU_TARGET     = atmega64
#MCU_TARGET     = atmega640
#MCU_TARGET     = atmega644
#MCU_TARGET     = atmega644p
#MCU_TARGET     = atmega645
#MCU_TARGET     = atmega6450
#MCU_TARGET     = atmega649
#MCU_TARGET     = atmega6490
MCU_TARGET     = atmega8
#MCU_TARGET     = atmega8515
#MCU_TARGET     = atmega8535
#MCU_TARGET     = atmega88
#MCU_TARGET     = attiny2313
#MCU_TARGET     = attiny24
#MCU_TARGET     = attiny25
#MCU_TARGET     = attiny26
#MCU_TARGET     = attiny261
#MCU_TARGET     = attiny44
#MCU_TARGET     = attiny45
#MCU_TARGET     = attiny461
#MCU_TARGET     = attiny84
#MCU_TARGET     = attiny85
#MCU_TARGET     = attiny861
OPTIMIZE       = -O2

DEFS           =
LIBS           =

# You should not have to change anything below here.

CC             = avr-gcc

# Override is only needed by avr-lib build system.

override CFLAGS        = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
override LDFLAGS       = -Wl,-Map,$(PRG).map

OBJCOPY        = avr-objcopy
OBJDUMP        = avr-objdump

all: $(PRG).elf lst text eeprom

$(PRG).elf: $(OBJ)
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)

# dependency:
demo.o: demo.c iocompat.h



 

sadman41
Offline
Зарегистрирован: 19.10.2016

Ищите в яндексе avr_cpunames.h

Jmurkin
Offline
Зарегистрирован: 03.05.2017

sadman41 пишет:
Ищите в яндексе avr_cpunames.h

нашел в папке \Arduino\hardware\arduino\bootloaders\stk500v2   файл avr_cpunames.h (почему только для платы stk500v2 ? )

в нем переменная _AVR_CPU_NAME_   определяемая как текстовая константа, но при компиляции выдается ошибка аналогичная MCU_TARGET, прпокоторую писал выше  Клапауцый.

MYFILE.ino: In function 'void setup()':
MYFILE.ino:15: error: '_AVR_CPU_NAME_' was not declared in this scope

По идее, компилятор к моменту обработке препроцессором должен знать тип MK, но "не знает". Как решить проблему?

 

 

sadman41
Offline
Зарегистрирован: 19.10.2016
#include  "avr_cpunames.h"

void setup() {
  Serial.begin(9600);
  Serial.println(_AVR_CPU_NAME_);
}

void loop() {}

Все прекрасно компилируется

Jmurkin
Offline
Зарегистрирован: 03.05.2017

sadman41 пишет:
Все прекрасно компилируется

Не получается. Как писал выше, единственный файл с таким именем находится в директории bootloader для платы stk500v2 (?????) и больше его нигде нет:

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Закинь файл в папку со скетчем.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

он лежит в .../hardware/arduino/avr/bootloaders/stk500v2/