接下來(lái)的工作是明確這一附加硬件能為設(shè)計(jì)節(jié)省多少CPU開(kāi)銷(xiāo)。以1,000個(gè)LED組成的陣列為例,其刷新頻率為30Hz。如果設(shè)計(jì)使用固件對(duì)接口進(jìn)行位拆裂操作,會(huì)差不多占用100%的CPU資源。使用PSoC器件中的可編程硬件仍然可以做到每30微秒中斷一次,雖然這也是較重的負(fù)荷,但運(yùn)行在48MHz的ARMCortex-M0足以應(yīng)付。為測(cè)試CPU開(kāi)銷(xiāo),我創(chuàng)建了一個(gè)簡(jiǎn)單的環(huán)路,以大約30Hz的頻率刷新顯示器。在主環(huán)路中,我觸發(fā)了一個(gè)引腳,然后使用示波器計(jì)算40毫秒內(nèi)的觸發(fā)數(shù)量。然后我禁用中斷,再次運(yùn)行項(xiàng)目,并比較結(jié)果。與使用固件中的位拆裂造成的幾乎100%的CPU占用相比,持續(xù)顯示刷新只占用大約12%的CPU資源。這樣另外88%的CPU周期可用于外部通信和用戶界面。如果為設(shè)計(jì)添加DMA,該開(kāi)銷(xiāo)可能會(huì)從12%下降到2%或更低。我使用的最廉價(jià)PSoC(約1美元)只包含UDB但未包含DMA,不過(guò)一些較大型的部件確實(shí)內(nèi)置有DMA。
隨后我實(shí)際制作了一個(gè)由6016個(gè)LED(960個(gè)LED)網(wǎng)格組成的真正RGBLED板,用于測(cè)試該組件。該組件的運(yùn)行符合預(yù)期,可用作顯示基本的直線、矩形、圓圈以及文本的圖形界面。