免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1724 | 回复: 4
打印 上一主题 下一主题

帮我想个办法吧,关于写寄存器的时序问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-14 19:39 |只看该作者 |倒序浏览
int i = 7;
for (; i >= 0; i--){
while ((GPEDAT & (1 < < 13)) == 0){;};        //等待上升沿
if ((GPEDAT & (1 < < 12)) != 0){
printk("here is in loop\n");
temp = temp + power;
power = power * 2;
}
while ((GPEDAT & (1 < < 13)) != 0){;};         //等待下降沿
}
就是这一段,我想实现在GPE13管脚的上升沿采样,现在是程序老师死循环,怎么修改呢,谢谢!
BTW:我把时钟沿直接和GPE13管脚相接可以吧?也就是说,GPEDAT的值就是管脚电平吧?

论坛徽章:
0
2 [报告]
发表于 2010-01-14 20:23 |只看该作者
死等当然容易死循环了, 用中断不行吗?

论坛徽章:
0
3 [报告]
发表于 2010-01-14 20:25 |只看该作者
原帖由 fineshang 于 2010-1-14 19:39 发表
BTW:我把时钟沿直接和GPE13管脚相接可以吧?也就是说,GPEDAT的值就是管脚电平吧?



管脚采样有那么快吗?

论坛徽章:
0
4 [报告]
发表于 2010-01-14 21:55 |只看该作者
http://hi.baidu.com/zq99168/blog ... b5e04ed0135ec9.html

看看这篇有没有帮助。

GPIO可以用作中断触发吗?

如果不能你最好看看任务队列。这么死循环的判断的话不是可取的办法

论坛徽章:
0
5 [报告]
发表于 2010-01-15 20:54 |只看该作者
处理器应该有计数器吧,用计数器呀,

而且你确认下你的处理器读引脚电平是GPEDAT寄存器吗?大多数处理器应该是GPEPIN的样子
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP