打印
[ZLG-ARM]

请教周工,2131的外部引脚连接成CAP后,

[复制链接]
1949|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hzxjm|  楼主 | 2007-3-2 00:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zlgARM| | 2007-3-2 08:42 | 只看该作者

RE

IOPIN寄存器不能反映非GPIO配置引脚的活动。
2131的引脚可能连接到不同的外设模块上,当引脚连接到非GPIO模块时,那么处于GPIO模块内的IOPIN寄存器已经和该引脚没联系了,所以不能通过它来了解引脚状态。

类似的寄存器功能特性问题,只要翻阅器件用户手册就知道了。器件的用户手册可谓是寄存器的说明大全。

使用特权

评论回复
板凳
hzxjm|  楼主 | 2007-3-2 10:05 | 只看该作者

再问,如果允许CAP上、下沿都中断,怎样确定是上升沿中断

使用特权

评论回复
地板
hzxjm|  楼主 | 2007-3-2 10:24 | 只看该作者

我在EASYARM2131的捕获例程中,在中断内读取key2的引脚电平

按下和不按下分别是0x727dffcf, 0x727fffcf, 说明P0.17分配给cap1.2后还是能用IO0PIN读到外部电平的,请周工再次帮我确认一下。
    阅器件用户手册及周工的书我都多次看过了,就如您回复的一样。我只是想区分上、下沿中断,以便做不同的处理。
    因为同时要用8个CAP,所以没法再用另8个IO脚用来查询电平。
    谢谢周工回复。

使用特权

评论回复
5
zlgARM| | 2007-3-2 16:24 | 只看该作者

RE

不客气。

我没有明白您的意思——上升沿和下降沿触发都是触发方式,而使用什么方式,您自己不是已经在寄存器里设置好了吗?那么为什么还要区分?

使用特权

评论回复
6
乱弹| | 2007-3-2 16:48 | 只看该作者

cap方式读电平是经常要用到的!

比如说:测量频率,在进入cap中断后, 要判断是不是干扰(毛刺)导致的cap中断,此时就需要反复读取外部电平,确认是不是毛刺   

使用特权

评论回复
7
hzxjm|  楼主 | 2007-3-2 19:15 | 只看该作者

中断时想要区分是上升沿还是下降沿

我要测量一个方波的,下降沿是起始,做工作A;上升沿是结束,作工作B。因为同时使用上、下沿触发,所以中断时要区分是上升沿还是下降沿。

使用特权

评论回复
8
hzxjm|  楼主 | 2007-3-4 00:18 | 只看该作者

周工,您好!

    周工,您好!上午电话没能联系上。
    我再次做了测试,捕获发生时,通过IO0PIN读CAP引脚的电平来区分是上升沿还是下降沿,结果很理想。因为按键会抖动,外部搭了个电平输入电路。
    因为是要做产品的,所以还是想请您们分析一下有没有潜在的危险。
    顺便提一下,我从RD2开始,到LPC900,到LPC2100一直是你们的客户。虽然自己从事嵌人式开发也有10几年了,但还是从您们这里学到了I2C、ISP、平台策略...,感觉您们不光是供应商,还是老师。谢谢!也谢谢您们在杭州的工程师,如李工。

使用特权

评论回复
9
zlgARM| | 2007-3-5 09:05 | 只看该作者

RE

您好!
《深入浅出ARM7-LPC213X/214X(上册)》P147里说到了,IOPIN寄存器提供GPIO引脚的值,但不能反映非GPIO配置脚的活动,根据这一点我才给出答复如上。而您的做法和NXP的数据手册说法是背离的,所以我不能说那样做不会出问题。


但是可以考虑采取变通的办法,在中断里修改引脚的用途为GPIO,这个时候再用IOPIN读此时的电平值,读完再把用途修改回来。

使用特权

评论回复
10
hzxjm|  楼主 | 2007-3-5 22:43 | 只看该作者

谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

0

粉丝