【国民技术N32G430】2 FFT应用及DWT计数器使用
[复制链接]
国民技术N32G430有很多定时器可以使用,在调试程序时候可以用来计算程序运行时间,不过这种也有问题,就是定时器频繁中断;在Cortex-M里面有一个外设叫DWT(Data Watchpoint and Trace),是用于系统调试及跟踪,不过手册上并没有具体介绍,在ARM官方手册有详细说明
它有一个32位的寄存器叫CYCCNT,它是一个向上的计数器,记录的是内核时钟运行的个数,内核时钟跳动一次,该计数器就加1,精度非常高,如果内核时钟是72M,那精度就是1/72M = 14ns,而程序的运行时间都是微秒级别的,所以14ns的精度是远远够的。最长能记录的时间为:59.65s。计算方法为2的32次方/72000000。当CYCCNT溢出之后,会清0重新开始向上计数。
要实现延时的功能,总共涉及到三个寄存器:DEMCR 、DWT_CTRL、DWT_CYCCNT,分别用于开启DWT功能、开启CYCCNT及获得系统时钟计数值。
Cortex-M的DSP信号处理有ARM官方提供的,也有ST公司提供的;这里移值ST官方提供的汇编FFT函数,程序中开启FPU进行计算
先用Matlab产生信号,并生成数据。
将N32G430计算结果上传到串口进行绘图,这个开发板没有集成USB转串口,需要用TTL转串口模块。
|