主题 : 如何让tiny6410的某个管脚为低电平 ,并检测管脚的电平 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 65739
精华: 0
发帖: 58
金钱: 295 两
威望: 59 点
综合积分: 116 分
注册时间: 2012-03-21
最后登录: 2012-04-21
楼主  发表于: 2012-04-18 19:44

 如何让tiny6410的某个管脚为低电平 ,并检测管脚的电平

想问一下大家,如何才能使tiny6410的某个I/O管脚输出为零? 并能检测某个管脚是否为零?谢谢!

对linux高级函数还是比较熟悉,这次涉及到管脚,就不知道该怎么写代码了。 不知道需要包括哪些库函数? 是否与/dev内的端口文件有关?或者说用哪些函数来操作?

我只需要某个端口为1或者为0; 并能检测某个端为1或者为0.  

初学者,对于这个操作还不是很熟悉,希望大家帮忙这个比较简单的问题,谢谢!
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
1楼  发表于: 2012-04-18 20:32
可参考led驱动
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 侠客
UID: 65739
精华: 0
发帖: 58
金钱: 295 两
威望: 59 点
综合积分: 116 分
注册时间: 2012-03-21
最后登录: 2012-04-21
2楼  发表于: 2012-04-18 20:52
嗯,好的,谢谢!

led的驱动文件,是不是就是dev下对应的led文件?

有这个驱动文件后,是不是可以自己写代码,使用 ioctl(fd, on, led_no) 语句来对驱动中定义的端口进行操作?

这样理解对吗?  谢谢!
级别: 侠客
UID: 65739
精华: 0
发帖: 58
金钱: 295 两
威望: 59 点
综合积分: 116 分
注册时间: 2012-03-21
最后登录: 2012-04-21
3楼  发表于: 2012-04-18 22:17
怎样利用驱动文件里面编写好的函数或定义好的变量?

使用ioctl来控制吗?

希望大家能帮忙解释一下,谢谢
级别: 侠客
UID: 65739
精华: 0
发帖: 58
金钱: 295 两
威望: 59 点
综合积分: 116 分
注册时间: 2012-03-21
最后登录: 2012-04-21
4楼  发表于: 2012-04-19 19:09
我看了书,还是有点不明白,能帮忙解释一下吗?谢谢
级别: 侠客
UID: 65739
精华: 0
发帖: 58
金钱: 295 两
威望: 59 点
综合积分: 116 分
注册时间: 2012-03-21
最后登录: 2012-04-21
5楼  发表于: 2012-04-19 23:05
驱动中有这么一条语句:

tmp=readl(S3C64XX_GPKDAT);
tmp &=~(1<<(4+arg);
tmp |=((!cmd)<<(4+arg));
writel(tmp,S3C64XX_GPKDAT);

驱动中实现了读取和写入,中间的两条&=  和|= 语句, 对tmp进行了什么操作? 我想删去,直接用writel写入我给arg的值,行吗?谢谢

谢谢