I'm doing something wrong somewhere,
I can't figure it out, and my brain doesn't work anymore. ![]()
file ex.h
template <uint16_t _AMOUNT>
class Terminal
{
private:
uint32_t TMRS[_AMOUNT], prds[_AMOUNT], loopTime{}, loopTimeMax{};
bool states[_AMOUNT];
uint32_t uptime();
void (*callbacks[10])() = {};
public:
void setMicros(bool mode);
void tick();
void attach(int num, void (*f)(void), uint32_t prd = 0);
void detach(int num);
void setPeriod(int num, uint32_t prd);
void start(int num);
void restart(int num);
void stop(int num);
void exec(int num);
uint32_t getLeft();
void terminal();
};
file ex.cpp
template <uint16_t _AMOUNT>
void Terminal<_AMOUNT>::terminal()
{
TIMER = millis();
_gfx.render(calcTerminal);
if (Serial.available() != 0)
{
char text[20]{};
Serial.readBytesUntil('\n', text, sizeof(text));
for (Command &command : commands)
{
if (not strncmp(command.text, text, 20))
{
command.active = true;
}
}
}
}
Run sketch
Terminal <5> trm;
void setup()
{
gfx.initializationSystem();
}
void loop()
{
trm.terminal();
}
An error is coming out ![]()
Starting] Verifying sketch 'src\src.ino'
[Warning] Output path is not specified. Unable to reuse previously compiled files. Build will be slower. See README.
c:/users/student/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\student\AppData\Local\Temp\arduino\sketches\99CDBD730A8D8BAE8ACA9CBC2BC49A5C\sketch\src.ino.cpp.o:(.literal._Z4loopv+0x4): undefined reference to `Terminal<(unsigned short)5>::terminal()'
c:/users/student/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\student\AppData\Local\Temp\arduino\sketches\99CDBD730A8D8BAE8ACA9CBC2BC49A5C\sketch\src.ino.cpp.o: in function `loop()':
C:\Users\student\Documents\GitHub\EX\src/src.ino:17: undefined reference to `Terminal<(unsigned short)5>::terminal()'
collect2.exe: error: ld returned 1 exit status
Error during build: exit status 1
IntelliSense configuration already up to date. To manually rebuild your IntelliSense configuration run "Ctrl+Alt+I"
[Error] Verifying sketch 'src\src.ino': Exit with code=1