Я нахожусь в процессе превращения arduino в «фиктивную» доску, чтобы поддерживать поведение ближе к DAQ. В основном используя CmdMessenger Я планирую в конечном итоге уйти от программирования на Arduino и управления им напрямую через проект .net.
TFT аппаратно подключен.
Пока все идет отлично. Однако моя проблема возникает, когда я пытаюсь реализовать TFT. Идеальная ситуация - динамически создавать TFT-объекты.
#include <TFT.h>
void TFTBegin()
{
int CS = cmdMessenger.readInt32Arg();
int DC = cmdMessenger.readInt32Arg();
int RESET = cmdMessenger.readInt32Arg();
// TFTscreen = TFT(CS, DC, RESET);
TFT(CS, DC, RESET).begin();
// BELOW CODE IS FOR DEBUGGING AND TEMP ENSURING SCREEN IS SETUP
TFT(CS, DC, RESET).background(0, 0, 0);
TFT(CS, DC, RESET).stroke(255, 255, 255);
TFT(CS, DC, RESET).setTextSize(2);
TFT(CS, DC, RESET).setTextSize(5);
CheckSetup(); // FEEDBACK COMMAND TO CONFIRM SETUP COMPLETE
}
void TFTCommands()
{
enum commands
{
background,
stroke,
setTextSize,
text,
};
int CS = cmdMessenger.readInt32Arg();
int DC = cmdMessenger.readInt32Arg();
int RESET = cmdMessenger.readInt32Arg();
int Command = cmdMessenger.readInt32Arg();
TFT(CS, DC, RESET).begin(); // WITHOUT THIS LINE NOTHING HAPPENS ON THE SCREEN?
switch (Command)
{
case background:
{
Serial.println("test");
int R = cmdMessenger.readInt32Arg();
int G = cmdMessenger.readInt32Arg();
int B = cmdMessenger.readInt32Arg();
TFT(CS, DC, RESET).background(R, G, B);
}
break;
ECT...
Функция TFTBegin работает должным образом, и TFTCommands обновит экран, но только после его повторной инициализации, что приводит к значительным задержкам в процессе. Я использовал TFT, традиционно используя библиотеку, и все, и все в порядке, так что только в этом формате. Я также проверил файлы библиотеки, но не вижу ничего очевидного.
Любая помощь будет принята с благодарностью!
Спасибо!