фатальная ошибка: avr / interrupt.h rtcLib.h platform.io Esp32 Arduino

Я разрабатываю с установленным VisualStudio Code и Platform.IO.

Я использую ESP32 / TTGO T-CALL с Arduino Framework и добавляю RTCLib.h Adafruit v 1.11.0 К сожалению, программное обеспечение не компилируется, потому что я получил следующую ошибку:

    Building in release mode
Compiling .pio\build\esp32dev\src\main.cpp.o
Compiling .pio\build\esp32dev\libfa0\TinyWireM\USI_TWI_Master.cpp.o
C:\Users\aleil\.platformio\lib\TinyWireM\USI_TWI_Master.cpp:28:27: fatal error: avr/interrupt.h: No such file or directory
compilation terminated.
Archiving .pio\build\esp32dev\lib46d\libRTClib.a
*** [.pio\build\esp32dev\libfa0\TinyWireM\USI_TWI_Master.cpp.o] Error 1
============================================ [FAILED] Took 8.69 seconds ============================================
The terminal process "C:\Users\aleil\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1.

Terminal will be reused by tasks, press any key to close it.

Вот ВХОДЯЩИЙ код:

#include <Arduino.h>
#include <StreamDebugger.h>
#include <ArduinoHttpClient.h>
#include <ArduinoJson.h>
#include <OneWire.h>                // x ds18b20 temperature sensors
#include <DallasTemperature.h>      // x ds18b20 temperature sensors
#include <esp_task_wdt.h>
#include "SPI.h" // Used to define SPI on SPI1
#include "SD.h"
#include <Wire.h>
#include <RTClib.h>

Поэтому я пытаюсь найти решение, но не могу его найти. Есть ли у кого-нибудь подсказка или решения?


person Alessandro Aneggi    schedule 31.07.2020    source источник
comment
Похоже, эта библиотека libfa0 / TinyWireM использует заголовки, специфичные для архитектуры AVR. Вам нужно будет адаптировать его к ESP32. В лучшем случае это простое определение препроцессора, в худшем - вам нужно будет отредактировать библиотеку.   -  person Botje    schedule 31.07.2020
comment
Какая у вас platformio.ini настройка? TinyWire является зависимостью от RTClib, но его следует включать только в том случае, если MCU является ATtiny, вы можете увидеть из RTClib.cpp, который Wire.h будет использоваться, если MCU не __AVR_ATtiny85__.   -  person hcheung    schedule 31.07.2020
comment
Спасибо, я добавил это в platformio.ini lib_ignore = TinyWireM, и он хорошо работает   -  person Alessandro Aneggi    schedule 18.08.2020


Ответы (1)


У меня была та же проблема, но удаление библиотеки TinyWireM (PlatformIO ›Библиотеки› Установлено) решило проблему.

Я думаю, что библиотека TinyWireM устанавливается автоматически вместе с библиотекой RTClib.

person Aäron    schedule 14.08.2020