Бибилиотека SD и Arduino MEGA2560

MagisterLudi
Offline
Зарегистрирован: 25.07.2017

Доброго времени суток!
Пытаюсь подключить к Arduino sd-карту. Начал с запуска примера CardInfo и сразу же столкнулся с трудностями: пример не компилируется. В начале были следующие ошибки:

Arduino: 1.8.3 (Windows 8), Плата:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In member function 'void Sd2Card::chipSelectHigh()':

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp:172:5: error: 'SDCARD_SPI' was not declared in this scope

     SDCARD_SPI.endTransaction();

     ^

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In member function 'void Sd2Card::chipSelectLow()':

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp:181:5: error: 'SDCARD_SPI' was not declared in this scope

     SDCARD_SPI.beginTransaction(settings);

     ^

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp:181:33: error: 'settings' was not declared in this scope

     SDCARD_SPI.beginTransaction(settings);

                                 ^

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In member function 'uint8_t Sd2Card::init(uint8_t, uint8_t)':

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp:280:3: error: 'SDCARD_SPI' was not declared in this scope

   SDCARD_SPI.beginTransaction(settings);

   ^

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp:280:31: error: 'settings' was not declared in this scope

   SDCARD_SPI.beginTransaction(settings);

                               ^

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In member function 'uint8_t Sd2Card::setSckRate(uint8_t)':

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp:522:14: error: 'settings' was not declared in this scope

     case 0:  settings = SPISettings(25000000, MSBFIRST, SPI_MODE0); break;

              ^

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp:522:57: error: 'SPI_MODE0' was not declared in this scope

     case 0:  settings = SPISettings(25000000, MSBFIRST, SPI_MODE0); break;

                                                         ^

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp:522:66: error: 'SPISettings' was not declared in this scope

     case 0:  settings = SPISettings(25000000, MSBFIRST, SPI_MODE0); break;

                                                                  ^

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp: In member function 'uint8_t Sd2Card::setSpiClock(uint32_t)':

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp:538:3: error: 'settings' was not declared in this scope

   settings = SPISettings(clock, MSBFIRST, SPI_MODE0);

   ^

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp:538:43: error: 'SPI_MODE0' was not declared in this scope

   settings = SPISettings(clock, MSBFIRST, SPI_MODE0);

                                           ^

C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp:538:52: error: 'SPISettings' was not declared in this scope

   settings = SPISettings(clock, MSBFIRST, SPI_MODE0);

                                                    ^

exit status 1
Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560.

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"

Начитавшись в интернетах, я закомментировал строки "#define USE_SPI_LIB" в Sd2Card.h и в Sd2Card.c. Вылезли следующие ошибки.

Arduino: 1.8.3 (Windows 8), Плата:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Program Files (x86)\Arduino\libraries\SD\src\SD.cpp: In member function 'boolean SDLib::SDClass::begin(uint32_t, uint8_t)':

C:\Program Files (x86)\Arduino\libraries\SD\src\SD.cpp:352:15: error: 'class Sd2Card' has no member named 'setSpiClock'

          card.setSpiClock(clock) &&

               ^

C:\Program Files (x86)\Arduino\libraries\SD\src\SD.cpp:355:1: warning: control reaches end of non-void function [-Wreturn-type]

 }

 ^

exit status 1
Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560.

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"

Помогите разобраться с ними, пожалуйста!

inspiritus
Offline
Зарегистрирован: 17.12.2012

В природе есть нормально работающие библиотеки, стоит только поискать

MagisterLudi
Offline
Зарегистрирован: 25.07.2017

Ссылку, плз.