Константа с моделью контроллера
- Войдите на сайт для отправки комментариев
Ср, 03/05/2017 - 21:42
Какое имя и тип константы, говорящей о типе микроконтроллера? Должна быть где-то в include или define
Какое имя и тип константы, говорящей о типе микроконтроллера? Должна быть где-то в include или define
MCU_TARGET
Компилятор пишет не определена такая константа. Наверное нужен заголовочный файл с 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Ищите в яндексе 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, но "не знает". Как решить проблему?
#include "avr_cpunames.h" void setup() { Serial.begin(9600); Serial.println(_AVR_CPU_NAME_); } void loop() {}Все прекрасно компилируется
Не получается. Как писал выше, единственный файл с таким именем находится в директории bootloader для платы stk500v2 (?????) и больше его нигде нет:
Закинь файл в папку со скетчем.
он лежит в .../hardware/arduino/avr/bootloaders/stk500v2/