Пожалуйста, прочитайте это хорошо, чтобы убедиться, что вы понимаете, что я хочу сделать.
Что я сделал (также как будущее ссылка на людей, которые могут захотеть сделать то же самое):
Я добавил следующие пути к путям поиска заголовка и пути поиска библиотеки:
(Если вы установили Arduino.app где-то, кроме папки приложений, вам нужно соответственно настроить пути.)
в Main.cpp, я включил
, но этого было недостаточно. Я получал неопределенные ошибки идентификатора (для SPCR, SPE, MSTR, SPR1, SPR0) из-за неспособности проходить -MMCU = Somechipname
как флаг для компилятора, что не было определено и AVR / IO.H
, чтобы быть не в состоянии включить файл, который определил эти символы. Я побрался вокруг него, включая
, который является соответствующим файлом заголовка для моего чипа.
Вот как далеко я получил.
Теперь я получаю эти ошибки:
Undefined symbols for architecture i386:
"_init", referenced from:
_main in main.o
"_setup", referenced from:
_main in main.o
"_loop", referenced from:
_main in main.o
"_pinMode", referenced from:
SBSetup() in main.o
"_digitalWrite", referenced from:
SBSetup() in main.o
Весь main.cpp, включая злой оскорбительный код, это:
#include <WProgram.h>
#include <avr/iom328p.h> // Getting around warning "device type not defined"
#define NumLEDs 25
#define clockpin 13 // CI
#define enablepin 10 // EI
#define latchpin 9 // LI
#define datapin 11 // DI
int LEDChannels[NumLEDs][3] = {0};
int SB_CommandMode;
int SB_RedCommand;
int SB_GreenCommand;
int SB_BlueCommand;
void SBSetup(void) {
pinMode(datapin, OUTPUT);
pinMode(latchpin, OUTPUT);
pinMode(enablepin, OUTPUT);
pinMode(clockpin, OUTPUT);
SPCR = (1<<SPE)|(1<<MSTR)|(0<<SPR1)|(0<<SPR0);
digitalWrite(latchpin, LOW);
digitalWrite(enablepin, LOW);
}
int main(void)
{
init();
setup();
for (;;)
loop();
return 0;
}
Что я об этом?