Board logo

标题: 如何在c程序中向寄存器写值和读值 [打印本页]

作者: cug_zhang    时间: 2005-6-24 10:51     标题: 如何在c程序中向寄存器写值和读值

我正在写nios的c应用程序,遇到了一个问题,就是如何向寄存器写值和读值.我定义了两个函数:

   write(char id-adder ,char sub-addr , char  data);

   read(char id-addr ,char sub-addr);

   其中id-addr是设备的地址,sub-addr是设备中的寄存器的地址;data是要写的值。id-addr的地址好办,sub-addr我就不知道该咋写了,他有十几个寄存器,我要写十几个值进去,我在c程序中该如何写,才能把对应的值写到对应的寄存器中。请哪位大侠指点一下,最好详细点,我不清楚该如何写!谢谢!
作者: icesword    时间: 2005-6-24 14:56

不知道你说的寄存器是不是自定义逻辑中的寄存器啊?在NIOS中,你可以通过定义定义寄存器地址,直接对寄存器读写。
作者: cug_zhang    时间: 2005-6-25 15:22

寄存器不是自定义逻辑中的寄存器,是我的摄像头里面的寄存器,要给寄存器赋值,摄像头才能工作,而且积存器的地址不是连续的,请问该如何向积存器写值?
作者: icesword    时间: 2005-6-25 19:21

那就看说明书,我想说明书上可能会带有相关的说明。有两种方法解决:(1)自己写用户接口。(2)可以根据说明,可以向相应地址的寄存器写内容。一般说明书上有可能带有相应的操作指导。
作者: Stoneway    时间: 2005-7-9 16:41

NiosII IDE 中有定义好的宏,IORD和IRWR。
作者: cug_zhang    时间: 2005-7-14 11:12     标题: 关于iord,iowr

你说NiosII IDE 中有定义好的宏,IORD和IRWR。可我用的是apex开发板,他只支持nios1,我该咋办?nios1中也可以用iowr,iord吗?
作者: mage1982mage198    时间: 2005-7-14 11:17

..............
换板子吧
作者: Stoneway    时间: 2005-7-14 12:19

换板子吧,参加竞赛用Nios1,没什么戏的.
作者: huangsp    时间: 2005-7-14 16:52

只要支持NIOS 就可以做.
首先要考虑你是用的哪个软核,如果用没有DATA CASHE的软核.有两种方式:
一.直接向你需要写入的端口写就可以啦.如:
int *p;
p=0xff10;//寄存器地址
*P=0X12;//要写的值
二.利用IOWR宏.
*p=0x12;//要写的值




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0