承接前面的测试探索,发现SDK1.0,SDK1.3和SDK2.0区别还是挺大的,当然最底层的寄存器都差不多,KS22使用的是SDK2.0。在测试AD的时候,初始环境配置基本上是传统套路,也可能SDK2.0不是很熟悉,遇到一些问题,主要有两个问题,一个就是原理图中两个电位器对应的DP0和DM0的AD number是多少,第二个问题是转换后的数据怎么配置是16位还是12位? 第一步要查看DOCK原理图和主板原理图,找到电位器对应的引脚。如图1,和图2所示。 第二步,按照传统套路配置环境,测试没什么问题了,开始按SDK的参考说明写函数,配置引脚,初始化时钟,初始化AD,启动AD转换,通过watch1来实时查看AD转换后的数据。代码如图3,图4所示。 这个时候,你会突然发现转换后的AD值是12位的,可是我们想要16位的转换值,究竟是哪儿配置不对呢?开始从头查找函数,发现在fsl_adc16.c中有一个AD初始化配置,问题就出在这里。把resolution里边的kADC16_ResolutionSE12Bit换成kADC16_ResolutionSE16Bit,在watch里观看就OK了。如图5所示。 转到第一个问题,这个问题还真头疼了一会,怎么找呢。翻到一片文档里,写到AD number去查找参考手册,中文版的翻了没有,后来才发现,原文没翻译完。马上去找英文版的,果然很快就在Chapter 33找到了AD的说明。基本问题算是解决了,希望其他人能看到不用走那么多弯路。
|