|
发表于 2022-9-18 23:09:20
|
显示全部楼层
本帖最后由 abbey_tom 于 2022-9-18 23:14 编辑
您说的这些我都仔细品了,
说得都没错。
但您可以人工模拟一下,
sine[sptr]从表中取数这个是死的,
sptr从0开始,
第10次进入ISP的时候,
5次Max--, Max=0,
导致sptr由400到0,
sptr的值序列是:
初始值0
1半50
1全100
2半150
2全200
3半250
3全300
4半350
4全400
5半Max=0,sptr=0;
5全sptr=50
max=(N/DAC_N)
不会等于6吧?
补充内容 (2022-9-26 16:01):
这个问题我后来看了,
从程序代码上看,的确如此。
在第5次半完成时,sptr会从400变为0,导致波形缺少1/4
但以此为起点,
后续的中断就会正常了,
因此,
前面这10次中断出现错误的这一段,
可以看作预热。 |
|