查看: 7328|回复: 16

[原创] 【YL-KL26Z开发】+AD转换的比较功能

[复制链接]

该用户从未签到

42

主题

340

帖子

0

高级会员

Rank: 4

积分
722
最后登录
2016-1-9
发表于 2015-7-19 19:58:03 | 显示全部楼层 |阅读模式
本次所做实验为AD转换中的比较功能,虽然功能可以实现,但是我并不知道在实际中有什么作用,知道的大神麻烦帮忙解释一下,谢谢。

本次实验室我上次遗留的问题中的一个,上次实验请移步到:https://www.nxpic.org.cn/module/forum/thread-600164-1-1.html

本次实验的问题是:

QQ截图20150719192351.png

在实际调试中已经实现了比较的功能,在程序中我设定比较的上下值为10000和50000,当转动旋钮时AD转换值超过这个范围时,串口将接收不到数据。


http://www.56.com/u59/v_MTM4MDYyMTky.html

本次实验中遇到的问题:

AD的比较功能实现后,串口没有数据,是否是因为AD的转换停止了,使得标志位一直为0,所以没有数据?


还有就是AD的那个混合功能:
QQ截图20150719195154.png

我只是知道KL26Z的AD通道有几组是分a,b的,但是这里的设置具体是实现什么?请教大家。


最后就是上次说的那个AD的校准功能,如果以上问题没有解决,我明天就会去调试这个功能,如果这个功能过难,我会考虑直接进行下一个模块。


恳请大家帮帮忙,有在学习KL26Z的人也请一块来讨论一下,谢谢大家了!

评分

参与人数 1NXP金币 +20 收起 理由
小七 + 20 鼓励下,大家手上有板子的不妨也实验下.

查看全部评分

回复

使用道具 举报

该用户从未签到

3

主题

21

帖子

0

注册会员

Rank: 2

积分
166
最后登录
1970-1-1
发表于 2015-7-20 14:34:50 | 显示全部楼层
一直在运行,只是超过的值不保存结果,被丢弃。
回复 支持 反对

使用道具 举报

该用户从未签到

42

主题

340

帖子

0

高级会员

Rank: 4

积分
722
最后登录
2016-1-9
 楼主| 发表于 2015-7-20 14:47:43 | 显示全部楼层
本帖最后由 LokTarOgar 于 2015-7-20 14:49 编辑
单肾青年 发表于 2015-7-20 14:34
一直在运行,只是超过的值不保存结果,被丢弃。

请问,数值被丢弃后,结果寄存器里面是不是就没有值,所以标志位不置位,所以串口没有数据发出。
而且,只要过了设定的值,在回到设定内,串口也没有数据
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

21

帖子

0

注册会员

Rank: 2

积分
166
最后登录
1970-1-1
发表于 2015-7-20 15:14:00 | 显示全部楼层
不知道你程序结构是咋样的,但就比较模式而言,只有满足比较条件的值会保存下来,并置位COCO位
1.png
回复 支持 反对

使用道具 举报

该用户从未签到

42

主题

340

帖子

0

高级会员

Rank: 4

积分
722
最后登录
2016-1-9
 楼主| 发表于 2015-7-20 17:34:18 | 显示全部楼层
单肾青年 发表于 2015-7-20 15:14
不知道你程序结构是咋样的,但就比较模式而言,只有满足比较条件的值会保存下来,并置位COCO位
...

明白了,万分感谢!!!

麻烦把你截图的资料给我发一份,感觉很全面,在回复层加上就行,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

21

帖子

0

注册会员

Rank: 2

积分
166
最后登录
1970-1-1
发表于 2015-7-21 09:34:53 | 显示全部楼层
参考芯片的reference manual就行了

KL26P121M48SF4RM.pdf

5.31 MB, 下载次数: 10, 下载积分: 威望 1

回复 支持 反对

使用道具 举报

该用户从未签到

42

主题

340

帖子

0

高级会员

Rank: 4

积分
722
最后登录
2016-1-9
 楼主| 发表于 2015-7-21 10:49:22 | 显示全部楼层
单肾青年 发表于 2015-7-21 09:34
参考芯片的reference manual就行了

非常感谢
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

287

帖子

0

高级会员

Rank: 4

积分
907
最后登录
2025-7-21
发表于 2015-7-21 16:39:26 | 显示全部楼层
AD的比较功能实现后,串口没有数据,是否是因为AD的转换停止了,使得标志位一直为0,所以没有数据?

我试着修改
INT16U  adcGetUint (void)
{
    ADC0_SC1(0) = ADC_SC1_ADCH(0);                                      /* 选择ADC信道                  */
   // while ((ADC0_SC1(0) & ADC_SC1_COCO_MASK) != ADC_SC1_COCO_MASK);     /* 等待转换完成                 */
    return ADC0_R(0);                                                   /* 输出结果                     */
}
停止现象解决
会持续传回前一次收到数值
转回范围内数值才会继续变动
目前还没想到这要怎么应用
回复 支持 反对

使用道具 举报

该用户从未签到

42

主题

340

帖子

0

高级会员

Rank: 4

积分
722
最后登录
2016-1-9
 楼主| 发表于 2015-7-22 00:00:29 | 显示全部楼层
momososo 发表于 2015-7-21 16:39
我试着修改
INT16U  adcGetUint (void)
{

这样要有足够的延时来等待AD的转换吧。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16704
    最后登录
    1970-1-1
    发表于 2015-7-25 23:17:00 | 显示全部楼层
    很好啊
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-22 19:53 , Processed in 0.105820 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表