我的旧实现(有效)侦听外部中断(数据就绪),并调用SPI transfer (KEIL驱动程序)读回值。它传输固定的32字节和读取32字节同步。到目前为止一切都很好。问题是,当我将采样率提高到每秒20,000个样本以上时,它变得太慢,cpu被中断太多次,我无法做其他任何事情。我的目标是达到每秒32K个样本。Keil spi驱动程序使用DMA底层,但仍然中断cpu每秒32K次太多了。
我认为应该有一种方法来配置低级DMA,以便在外部事件(数据就绪信号)发生时开始传输。从这一点上,我不知道如何告诉DMA侦听<
在程序中,我使用定时器中断在led之间循环&如果有人按下开关,它应该停止第一个中断,并触发第二个中断,根据按下的开关点亮led。在这里,我有点困惑哪个中断是被调用的。我参考了一些关于引脚更改中断的书籍,并编写了几行代码来设置PCMSK2。我得到的输出是“最初所有的led都在循环,当一个开关被pressed...cycling of led停止并重新开始时(这意味着程序正在读取输入,只是没有触发第二个中断)。