草庐IT

lastBlink

全部标签

c++ - 每 x 秒运行一次代码,无论在循环内执行多长时间

我正在尝试让LED灯随着特定歌曲的节拍闪烁。这首歌恰好有125bpm。我编写的代码一开始似乎可以工作,但它运行的时间越长,LED闪烁和下一节拍开始之间的时间差异就越大。LED似乎闪烁得有点太慢了。我认为发生这种情况是因为lastBlink有点依赖于之前发生的闪烁来保持同步,而不是使用一个静态初始值来同步到...unsignedintbpm=125;intflashDuration=10;unsignedintlastBlink=0;for(;;){if(getTickCount()>=lastBlink+1000/(bpm/60)){lastBlink=getTickCount();p