[ZLG-ARM] LPC2378,FAST GPIO的一个非常蹊跷的现象,望解答.

[复制链接]
3005|7
 楼主| yuzhuju 发表于 2008-2-20 22:42 | 显示全部楼层 |阅读模式
#define&nbsp;LCM_RD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0x00000001&nbsp;&lt&lt&nbsp;&nbsp;4)//LCM&nbsp;READ<br />void&nbsp;PIN_TEST(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCS&nbsp;|=&nbsp;0x00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINSEL2&nbsp;&=&nbsp;0x0FC0FCF0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FIO1DIR&nbsp;=&nbsp;LCM_RD;<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;FIO1SET&nbsp;=&nbsp;LCM_RD;<br />&nbsp;&nbsp;&nbsp;FIO1CLR&nbsp;=&nbsp;LCM_RD;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />用ulink接板子单步执行,发现当执行FIO1CLR&nbsp;=&nbsp;LCM_RD;P1.4脚只出现一个60ms的低脉冲,而不是一个持续的低电平.<br />但是如果以下程序,把P1.4作为普通gpio来使用的时候,执行FIOCLR1&nbsp;=&nbsp;LCM_RD;P1.4就会稳定输出一个低电平.请问该怎么解决这个问题啊.另外请问FAST&nbsp;GPIO是否可以混用.即P0,P1使用普通GPIO,P2,P3,P4使用fast&nbsp;gpio.<br />void&nbsp;PIN_TEST1(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINSEL2&nbsp;&=&nbsp;0x0FC0FCF0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FIODIR1&nbsp;=&nbsp;LCM_RD;<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;FIOSET1&nbsp;=&nbsp;LCM_RD;<br />&nbsp;&nbsp;&nbsp;FIOCLR1&nbsp;=&nbsp;LCM_RD;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />
 楼主| yuzhuju 发表于 2008-2-21 09:04 | 显示全部楼层

没人遇见这个情况吗?

void&nbsp;PIN_TEST(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCS&nbsp;|=&nbsp;0x00000001;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINSEL2&nbsp;&=&nbsp;0x0FC0FCF0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FIO1DIR&nbsp;=&nbsp;LCM_RD;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FIO1CLR&nbsp;=&nbsp;LCM_RD;<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1);<br />}<br /><br />这个函数的结果是输出了一个低脉冲,而不是一个持续电平,除非在循环里面反复刷新这个脚.<br /><br />
 楼主| yuzhuju 发表于 2008-2-21 10:19 | 显示全部楼层
 楼主| yuzhuju 发表于 2008-2-21 10:20 | 显示全部楼层
 楼主| yuzhuju 发表于 2008-2-21 10:22 | 显示全部楼层

..........

硬件仿真<br />发现控制FIO1的时候,FIO3的寄存器居然在变化.FIO1却不动.
zlgarm 发表于 2008-2-21 11:25 | 显示全部楼层

回复如下:

yuzhuju,您好!<br />&nbsp;&nbsp;&nbsp;&nbsp;用其他的管脚作快速GPIO会出现此现象吗?比如用P1.18作快速GPIO。<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;By&nbsp;zlgarm_wuzhijian
 楼主| yuzhuju 发表于 2008-2-21 17:44 | 显示全部楼层

....

目前发现是2个脚<br />P1.1和P1.4<br />P1.1&nbsp;CLR的时候出现一个低脉冲<br />P1.4&nbsp;SET的时候出现一个高脉冲<br /><br />不过这些都是都单步执行时候出现.<br />现在倒有点怀疑是KEIL,或ULINK的问题了.<br /><br />另外2378的P1,P2口输出被短路了一下,IC热的很.恢复正常后,rtc好象坏了,会很频繁的发出中断.其它都还正常.<br />
lpc2000 发表于 2008-2-22 05:43 | 显示全部楼层

观察FIO管脚的电平

把Memory的窗口关掉,是debugger的问题,用示波器观察,电平应该是<br />对的。<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

120

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部