5509aIO口的问题
我用5509a写程序,IO口操作都是这样:GPIO_RSET(IODATA,0x1);
有没有向28系列那样对IO口的一位进行操作的方式啊?高手指教,谢谢! 用CSL库这样写的 这个函数也就是对寄存器的直接操作
如果要跟28一样那样对寄存器按位域操作你就需要按照datasheet上寄存器对应的地址
定义寄存器 结构体位域
然后就可以啦看到有些基于5509的代码就是这么写的 谢谢! 我找到直接操作寄存器的代码 给你分享 多谢! wangch_sh 发表于 2013-12-22 21:53 static/image/common/back.gif
多谢!
你看看这个是直接对寄存器地址定义操作的
再次感谢! 也遇到的类似的问题,想只观察定义的那一位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)))
页:
[1]