首页 > 解决方案 > SAMD51:动画与阻塞操作

问题描述

我将这个 Adafruit_Protomatter库与 Adafruit MatrixPortal M4 和 PlatformIO 一起使用。由于我确实使用 WiFiNINA(adafruit fork)阻止了 HTTP 请求,因此我认为我可以在计时器中断中更新矩阵,以便能够执行可缩放文本。

我正在使用 SAMD_TimerInterrupt 库进行中断:

SAMDTimer ITimer0(TIMER_TC3);

不幸的是,如果我在 TimerHandler 中调用 matrix.show(),程序执行会崩溃。setCursor() 和 print() 方法不会导致崩溃,我不知道为什么。

void TimerHandler0()
{
   static uint32_t curMillis = 0;

   curMillis = millis();
   if (curMillis > TIMER0_INTERVAL_MS)
   {
     matrix.fillScreen(0);
     matrix.setCursor(textX, textY);
     matrix.print(str);
     if ((--textX) < textMin)
        textX = matrix.width();
     matrix.show();
   }
   preMillisTimer0 = curMillis; 
}

也许有更好的方法在滚动文本期间执行 HTTP 请求/阻塞操作?我无法找到使用 MatrixPortal 执行例如异步 http 请求的方法...

在此先感谢并致以最诚挚的问候, 丹尼尔

标签: arduinointerruptcortex-madafruit

解决方案


推荐阅读