Ошибка множественной определения после попытки разделить проект на файлыC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка множественной определения после попытки разделить проект на файлы

Сообщение Anonymous »

Я новичок в C ++, поэтому я, вероятно, допустил глупую ошибку, но я не могу решить ее сам. Все было хорошо, пока я не добавил анимацию.

Код: Выделить всё

epd_bitmap_wifi_1_Array
, framewifi , wifigif () и epd_bitmap_rpnzl_128x64_array .
Мои файлы:
mwts.ino (расположенные в корневом направлении проектов)
mwts.ino (расположены в корневом направлении проектов)

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 
#include "time.h"
#include "bitmaps.h"
#include "animations.cpp"

DHT dht22(5, DHT22);  //temp and humidity sensor mount
float TEMP = 0;
float HUMIDITY = 0;

#define touchPin 12  //GPIO 12

const char* ssid = "123";
const char* password = "123";

const char* ntpServer = "pool.ntp.org";
const long gmtOffset_sec = 3600;
const int daylightOffset_sec = 3600;

#define SCREEN_WIDTH 128  // OLED display width, in pixels
#define SCREEN_HEIGHT 64  // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)

#ifndef _DISPLAY_
#define _DISPLAY_
extern Adafruit_SSD1306;
#endif // _DISPLAY_

void debug(float TEMP, float HUMIDITY) {
if (touchRead(touchPin) < 20) {
//display TEMP and HUMIDITY in serial monitor
}
delay(1000);
}

void printLocalTime() {
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
Serial.println("Failed to obtain time");
return;
}
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
Serial.print("Day of week: ");
Serial.println(&timeinfo, "%A");
Serial.print("Month: ");
Serial.println(&timeinfo, "%B");
Serial.print("Day of Month: ");
Serial.println(&timeinfo, "%d");
Serial.print("Year: ");
Serial.println(&timeinfo, "%Y");
Serial.print("Hour: ");
Serial.println(&timeinfo, "%H");
Serial.print("Hour (12 hour format): ");
Serial.println(&timeinfo, "%I");
Serial.print("Minute: ");
Serial.println(&timeinfo, "%M");
Serial.print("Second: ");
Serial.println(&timeinfo, "%S");

Serial.println("Time variables");
char timeHour[3];
strftime(timeHour, 3, "%H", &timeinfo);
Serial.println(timeHour);
char timeWeekDay[10];
strftime(timeWeekDay, 10, "%A", &timeinfo);
Serial.println(timeWeekDay);
Serial.println();
}

void wifi_connect_get_time() {
wifiGif();  //play animation
// Connect to Wi-Fi
//get time
//disconnect WiFi
}

void setup() {
Serial.begin(115200);
dht22.begin();

if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {  // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for (;;)
;
}
delay(2000);
display.clearDisplay();
display.drawBitmap(0, 0, epd_bitmap_rpnzl_128x64_bitmap, 128, 64, 1);  //startup logo
display.display();
delay(2000);
wifi_connect_get_time();
}

void loop() {
TEMP = dht22.readTemperature();
HUMIDITY = dht22.readHumidity();
debug(TEMP, HUMIDITY);
}
animation.cpp (расположен в корневом каталоге проектов)

Код: Выделить всё

#ifndef _ANIMATIONS_CPP_
#define _ANIMATIONS_CPP_

#include 

#include 
#include 
#include "bitmaps.h"

int frameWifi = 0;
#define SCREEN_WIDTH 128  // OLED display width, in pixels
#define SCREEN_HEIGHT 64  // OLED display height, in pixels

#ifndef _DISPLAY_
#define _DISPLAY_
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
#endif

void wifiGif() {
display.clearDisplay();
display.setCursor(0, 0);
display.drawBitmap(32, 4, epd_bitmap_wifi_1_Array[frameWifi], 64, 32, 1);
display.display();
frameWifi = (frameWifi + 1) % 7;
delay(500);
}

#endif
bitmaps.h (расположен в корневом каталоге проектов)

Код: Выделить всё

#ifndef _BITMAPS_H_
#define _BITMAPS_H_

// 'rpnzl_128x64_bitmap', 128x64px
const unsigned char epd_bitmap_rpnzl_128x64_bitmap[] PROGMEM = {
//bitmap
};

// Array of all bitmaps for convenience.  (Total bytes used to store images in PROGMEM = 1040)
const int epd_bitmap_rpnzl_128x64_Array_LEN = 1;
const unsigned char* epd_bitmap_rpnzl_128x64_Array[1] = {
epd_bitmap_rpnzl_128x64_bitmap
};

// 'wifi_1_bitmap', 64x32px
const unsigned char epd_bitmap_wifi_1_bitmap[] PROGMEM = {
//bitmap
};
// 'wifi_2_bitmap', 64x32px
const unsigned char epd_bitmap_wifi_2_bitmap[] PROGMEM = {
//bitmap
};
// 'wifi_3_bitmap', 64x32px
const unsigned char epd_bitmap_wifi_3_bitmap[] PROGMEM = {
//bitmap
};
// 'wifi_4_bitmap', 64x32px
const unsigned char epd_bitmap_wifi_4_bitmap[] PROGMEM = {
//bitmap
};

// Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 1088)
const int epd_bitmap_wifi_1_Array_LEN = 7;
const unsigned char* epd_bitmap_wifi_1_Array[7] = {
epd_bitmap_wifi_1_bitmap,
epd_bitmap_wifi_2_bitmap,
epd_bitmap_wifi_3_bitmap,
epd_bitmap_wifi_4_bitmap,
epd_bitmap_wifi_3_bitmap,
epd_bitmap_wifi_2_bitmap,
epd_bitmap_wifi_1_bitmap
};

#endif
Я сам пытался решить это, используя другие сообщения и интернет в целом, но, кажется, ничего не работает, и я собираюсь сойти с ума, как бы я ни изменил в коде, я получаю те же ошибки.

Подробнее здесь: https://stackoverflow.com/questions/796 ... into-files
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»