在线时间17 小时
UID347708
注册时间2012-3-16
NXP金币0
该用户从未签到
中级会员
 
- 积分
- 330
- 最后登录
- 1970-1-1
|
发表于 2013-9-5 09:46:25
|
显示全部楼层
回复:K60,PDB-ADC-DMA问题(已解决)
回复第 17 楼 于2013-09-04 21:19:54发表:
今天再看了下自己的程序,也比对了两个官方例程,一个是在TWR-K20上运行的pdb-adc-demo,在TOWER板子上可以正常运行并且调试,一个是k60上的 pdb-adc-demo,在自己的板子上不能正常运行,总是进入pdb sequence error.这两个官方例程除了前者只有ADC0,后者多一个ADC1以外没有其他差别,与我的程序也只是ADC的配置上有些不同,PDB设定预触发时间和周期间隔不一样。
这是前言。结果是我把自己的程序改了重要的一处:PDB预触发时间之前设置为计算的AD转换时间 6.8us,稍微改长一点后,PDB能够正常触发AD在单次转换模式下。
总结:1.PDB的预触发是给ADC启动转换,转换结束后PDB时钟继续计时到达周期值,如果预触发时AD没有转换结束就会产生pdb sequence error,所以这段时间要设置得比转换时间稍长,否则就会出现只能触发一次AD的现象。
2.PDB在调试状态下仍然会继续计数,所以debug暂停程序之后再运行的话结果会有误。我观察的结果是暂停之后再运行PDB定时周期会改变。
仍然存在问题:我自己的程序现在已经能够通过检测了,虽然不能调试“(PDB不能停止),但还是能判断PDB没有进入sequence error,但是官方例程在我的板子上运行仍然出现此错误,不知为何。
另外,对于TWR板子上能够正常调试该例程的原因,我在英文论坛上有搜索到一篇帖子,大概是讲通过硬件还是怎么个方法是可以让PDB调试时停止计数的,我想应该是这个原因吧。
嗯,总结到这吧,希望对其他人有帮助。
请问lz PDB触发和预触发的区别是什么啊 |
|