查看: 4521|回复: 12

[已解决] 用PDB触发ADC遇到问题(已解决)

[复制链接]

该用户从未签到

11

主题

64

帖子

0

注册会员

Rank: 2

积分
180
最后登录
1970-1-1
发表于 2013-12-3 18:22:11 | 显示全部楼层 |阅读模式
用K60芯片,做AD转换,12位精度,单端模式。
我没有用官方例程的乒乓模式,感觉有些复杂,时间有些紧。直接用PDB触发ADC,不用中断,用查询的方式。
我的程序用还用到CAN总线,采用邮箱接收中断。频率很慢,5秒才产生一次中断。
现在的情况是,不连CAN总线,ADC的转换是没问题的。只要一连上网线,就不能转化了,总是卡在等待转化结果那句上。 while((ADC_SC1_REG(adcptr,0)&ADC_SC1_COCO_MASK) == 0);  //等待转换完成           然后就是PDB0_CH1S中的ERR为0x01
我想了半天,ADC和CAN总线应该没什么关联。只要不连网线就能过的去。
求指点~
 
我知道答案 目前已有11人回答
回复

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2013-12-4 10:48:19 | 显示全部楼层

RE:用PDB触发ADC遇到问题

请问ADC与CAN所用的引脚有重叠吗?
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

64

帖子

0

注册会员

Rank: 2

积分
180
最后登录
1970-1-1
 楼主| 发表于 2013-12-4 11:30:50 | 显示全部楼层

RE:用PDB触发ADC遇到问题

引脚没有重叠,定义也没问题。目前做实验AD就用了一路,AD的一根线和CAN的两根线量了,没有短路。
回复 支持 反对

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2013-12-4 11:38:11 | 显示全部楼层

回复:用PDB触发ADC遇到问题

回复第 3 楼 于2013-12-04 11:30:50发表:
引脚没有重叠,定义也没问题。目前做实验AD就用了一路,AD的一根线和CAN的两根线量了,没有短路。
 
 

按意思两者分开使用都功能正常,但代码一合在一起就有问题啊?
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

64

帖子

0

注册会员

Rank: 2

积分
180
最后登录
1970-1-1
 楼主| 发表于 2013-12-4 11:45:50 | 显示全部楼层

RE:用PDB触发ADC遇到问题

不连网线时,ADC功能正常。连上网线,CAN功能正常,ADC转换失败,PDB0_CH1S中的ERR为0x01
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

64

帖子

0

注册会员

Rank: 2

积分
180
最后登录
1970-1-1
 楼主| 发表于 2013-12-4 16:00:25 | 显示全部楼层

RE:用PDB触发ADC遇到问题

发现时这样,不是CAN总线的问题,现在是在主循环中查询温度。
while(1)
{
   temper = Ad_Convert(ADC0,11);
}
这样是没问题的
但是,如果在主循环中加一段延时,就转换不过去了。
while(1)
{
   temper = Ad_Convert(ADC0,11);
   dalay();
}
就是说,要不断的取值,不能打断,一旦断开一点时间,就不能转换
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

64

帖子

0

注册会员

Rank: 2

积分
180
最后登录
1970-1-1
 楼主| 发表于 2013-12-4 16:18:50 | 显示全部楼层

RE:用PDB触发ADC遇到问题

有没有什么方法解决这个问题?
回复 支持 反对

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
发表于 2013-12-4 16:48:34 | 显示全部楼层

RE:用PDB触发ADC遇到问题

PDB触发ADC的频率有多快? ADC转换频率有多快? 这两个频率是不是很接近?如果是,将PDB触发时间加长再试试。
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

64

帖子

0

注册会员

Rank: 2

积分
180
最后登录
1970-1-1
 楼主| 发表于 2013-12-4 17:53:28 | 显示全部楼层

回复:用PDB触发ADC遇到问题

PDB的触发频率为1MS,ADC的转换频率没有很精确测试,大约在1--2MS之间。
我把触发频率改到10MS了,还是不行。
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

64

帖子

0

注册会员

Rank: 2

积分
180
最后登录
1970-1-1
 楼主| 发表于 2013-12-5 10:36:36 | 显示全部楼层

RE:用PDB触发ADC遇到问题

貌似调好了
转换前PDB计数打开,转换后关闭,再观察一下看看
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-19 05:35 , Processed in 0.106909 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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