遇到问题:无论什么情况读9200的I/O口都是0

[复制链接]
2666|3
 楼主| borbery 发表于 2007-8-13 17:15 | 显示全部楼层 |阅读模式
I/O, pi, IO, se, pd
读9200的I/O口读到的都是0&nbsp;<br /><br />遇到一个非常奇怪的问题:<br /><br />设置PD[4]为输入口,设置的函数为:<br /><br />int&nbsp;at91_set_gpio_input(AT91PS_PIO&nbsp;pio_base,&nbsp;uint&nbsp;pin,&nbsp;int&nbsp;use_pullup,&nbsp;int&nbsp;use_filter)<br />{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;pio_base-&gtPIO_IDR&nbsp;|=&nbsp;pin;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(use_pullup)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pio_base-&gtPIO_PPUER&nbsp;|=&nbsp;pin;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pio_base-&gtPIO_PPUDR&nbsp;|=&nbsp;pin;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;pio_base-&gtPIO_ODR&nbsp;|=&nbsp;pin;<br />&nbsp;&nbsp;&nbsp;&nbsp;pio_base-&gtPIO_PER&nbsp;|=&nbsp;pin;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(use_filter)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pio_base-&gtPIO_IFER&nbsp;|=&nbsp;pin;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pio_base-&gtPIO_IFDR&nbsp;|=&nbsp;pin;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(0);<br />}<br /><br />然后读取PD[4]上的数值,函数为:<br /><br />uchar&nbsp;at91_get_gpio_bit_value(AT91PS_PIO&nbsp;pio_base,&nbsp;uint&nbsp;pin)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if((&nbsp;pio_base-&gtPIO_PDSR&nbsp;&&nbsp;pin&nbsp;)&nbsp;==&nbsp;pin&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(0);<br />}<br /><br />发现读到的都是0!<br /><br />后来改用其他的口设置为输出,无论输出什么值读回来也是0,但是PIO_ODSR(输出数据状态寄存器)值是正常的,就是PIO_PDSR(引脚状态寄存器)读的就是0<br /><br />我是哪里搞错了?各位有遇到过这种问题么?<br />头痛ing~~~~~<br />&nbsp;<br />&nbsp;<br />
 楼主| borbery 发表于 2007-8-13 17:15 | 显示全部楼层

实在奇怪,麻烦各位给点建议阿

  
centimetre 发表于 2007-8-13 18:34 | 显示全部楼层

io的clock没有使能

  
 楼主| borbery 发表于 2007-8-14 09:18 | 显示全部楼层

谢谢 centimetre 的确是时钟没有使能的问题

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

本版积分规则

7

主题

20

帖子

1

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