您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF533,600MHz时发现有一个 I/O口register读... 
本帖共有749个阅读者
发表帖子 发表投票 回复主题
BF533,600MHz时发现有一个 I/O口register读取出来的值会不稳定
firegang(论坛新手)
firegang
头衔:社区公民
帮派:无帮无派
帖数:25
金钱:342
积分:36
注册时间:2011/11/21
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF533,600MHz时发现有一个 I/O口register读取出来的值会不稳定

使用BF533600MHz发现有一个 I/O口 register读取出来的值会不稳定,

利用FIO_FLAG_D这个register中的PF3判断trigger按下还是放开,

我们在主程序(MIANDEMO.c)的最后面会有一行指令如下(preDbool)

preD = *pFIO_FLAG_D & 0x0008;

此指令并未使用其他if判断,所以正常来说当trigger没有按下时,preD的值都应该为false(0)

但我将此变量打印出来观察,在按下trigger时,preD会变为true(1),此为正常的数值,

但放开trigger后,preD应当变更为false(0)才对,但有时却会在变为false(0)后,在未按下trigger的情况下自动变为true(1)

由于不知道pFIO_FLAG_D的内容何时会被改变,所以控制也不是很固定

如果我换回原来的400MHz的设定,则一切都恢复正常,

不知道是何种原因导致?


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/10/27 8:18:08
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5259
金钱:35302
积分:6476
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你用的是600M的芯片还是400M的?

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2014/10/27 18:54:27
firegang(论坛新手)
firegang
头衔:社区公民
帮派:无帮无派
帖数:25
金钱:342
积分:36
注册时间:2011/11/21
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF533是600MHz的xinpian

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/10/27 20:40:30
firegang(论坛新手)
firegang
头衔:社区公民
帮派:无帮无派
帖数:25
金钱:342
积分:36
注册时间:2011/11/21
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
请OP回复一下

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/10/31 10:32:02
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5259
金钱:35302
积分:6476
注册时间:2011/6/7
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
几层板?是不是信号完整性?电源完整性?导致主频跑不到600M?

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2014/10/31 12:08:35
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你读值时,是否开了中断?若开了中断,读取的值则为中断触发状态,并非电平状态。

另外,如果你担心速度过快引起的,你可以将CPU频率降到400M以下看看是否还有这种现象。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2014/11/2 20:43:42
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.168646 Call, 2 Queries, Processed in 0.031250 second(s),