通过CmdMessenger将Arduino与.net程序组合时,TFT屏幕需要'tft.begin'

时间:2018-08-28 09:25:08

标签: arduino arduino-ide arduino-due

我正在将应有的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来使用库,并且所有内容都很好,因此仅当采用这种格式时。我还检出了库文件,但看不到任何明显的内容。

任何帮助将不胜感激! 谢谢!

0 个答案:

没有答案