[DSP编程] 5509aIO口的问题

[复制链接]
1704|7
 楼主| wangch_sh 发表于 2013-12-21 08:24 | 显示全部楼层 |阅读模式
IO, AI, GPIO, se, RS
我用5509a写程序,IO口操作都是这样:
GPIO_RSET(IODATA,0x1);
有没有向28系列那样对IO口的一位进行操作的方式啊?高手指教,谢谢!
zhangmangui 发表于 2013-12-21 23:13 | 显示全部楼层
用CSL库这样写的   这个函数也就是对寄存器的直接操作
如果要跟28一样那样对寄存器按位域操作  你就需要按照datasheet上寄存器对应的地址
定义寄存器   结构体  位域  
然后就可以啦  看到有些基于5509的代码就是这么写的
 楼主| wangch_sh 发表于 2013-12-22 11:54 | 显示全部楼层
谢谢!
zhangmangui 发表于 2013-12-22 21:34 | 显示全部楼层
我找到直接操作寄存器的代码   给你分享
 楼主| wangch_sh 发表于 2013-12-22 21:53 | 显示全部楼层
多谢!
zhangmangui 发表于 2013-12-23 10:00 | 显示全部楼层
wangch_sh 发表于 2013-12-22 21:53
多谢!

你看看这个  是直接对寄存器地址定义  操作的


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| wangch_sh 发表于 2013-12-23 10:27 | 显示全部楼层
再次感谢!
ttxs_2013 发表于 2013-12-26 16:54 | 显示全部楼层
也遇到的类似的问题,想只观察定义的那一位I/O口的电平怎么读出来,尝试着用GPIO_FGET(IODATA, _GPIO_IODATA_IO7D)语句,但是老是报错,说是_GPIO_IODATA_IO7D未定义,在csl_gpiohal.h文件中对数据寄存器的0-7位都进行了宏定义,看不明白是什么意思
#define _GPIO_IODATA_IO7D_SHIFT                (0x0007u)
#define _GPIO_IODATA_IO7D_MK(n)                (((Uint16)(n) & 0x0001u) << _GPIO_IODATA_IO7D_SHIFT)
#define _GPIO_IODATA_IO7D_MASK               (_GPIO_IODATA_IO7D_MK(0x0001u))
#define _GPIO_IODATA_IO7D_CLR                (~(_GPIO_IODATA_IO7D_MK(0x0001u)))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

318

主题

2817

帖子

5

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