10-03-2019, 15:39
Witam serdecznie,
Bardzo proszę o pomoc przy podziale projektu na pliki. Działający kod bez podziału na pliki wygląda tak:
Zależy mi na tym, aby deklaracja i definicja funkcji lcd_splash() znalazła się w oddzielnym pliku, a wywołanie w programie głównym. Robię zatem tak:
Zmieniam kod głównego programu na taki:
Tworzę plik additives.h, w którym umieszczam kod:
Następnie tworzę plik additives.cpp:
Niestety, kompilacja nie przebiega pomyślnie. Wszelkie manipulacja z tworzeniem obiektu lcd w różnych miejscach nie przynoszą efektów. Czy może ktoś podpowiedzieć, gdzie popełniam błąd i jak to naprawić?
Z góry dziękuję za odpowiedź.
Pozdrawiam
Bardzo proszę o pomoc przy podziale projektu na pliki. Działający kod bez podziału na pliki wygląda tak:
Kod:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
void lcd_splash(void);
void setup() {
lcd.init();
lcd.backlight(); //podswietlenie ON
lcd_splash();
}
void loop() {
}
void lcd_splash(void)
[size=small][font=Monaco, Consolas, Courier, monospace]{[/font][/size]
[size=small][font=Monaco, Consolas, Courier, monospace] lcd.setCursor(0, 0);[/font][/size]
[size=small][font=Monaco, Consolas, Courier, monospace] lcd.print("Testowo = ");[/font][/size]
}
Zależy mi na tym, aby deklaracja i definicja funkcji lcd_splash() znalazła się w oddzielnym pliku, a wywołanie w programie głównym. Robię zatem tak:
Zmieniam kod głównego programu na taki:
Kod:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "additives.h"
//LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
lcd.init();
lcd.backlight(); //podswietlenie ON
lcd_splash();
}
void loop() {
}
Tworzę plik additives.h, w którym umieszczam kod:
Kod:
// additives.h
#ifndef _ADDITIVES_h
#define _ADDITIVES_h
#if defined(ARDUINO) && ARDUINO >= 100
#include "arduino.h"
#else
#include "WProgram.h"
#endif
extern LiquidCrystal_I2C lcd(0x27, 20, 4);
void lcd_splash(void);
#endif
Następnie tworzę plik additives.cpp:
Kod:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "additives.h"
//LiquidCrystal_I2C lcd(0x27, 20, 4);
void lcd_splash(void)
{
lcd.setCursor(0, 0);
lcd.print("Testowo = ");
}
Niestety, kompilacja nie przebiega pomyślnie. Wszelkie manipulacja z tworzeniem obiektu lcd w różnych miejscach nie przynoszą efektów. Czy może ktoś podpowiedzieć, gdzie popełniam błąd i jak to naprawić?
Z góry dziękuję za odpowiedź.
Pozdrawiam