首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

如何在c程序中向寄存器写值和读值

如何在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程序中该如何写,才能把对应的值写到对应的寄存器中。请哪位大侠指点一下,最好详细点,我不清楚该如何写!谢谢!
不知道你说的寄存器是不是自定义逻辑中的寄存器啊?在NIOS中,你可以通过定义定义寄存器地址,直接对寄存器读写。
爱,不是激情的随口
  
        情,不是瞬间的感动
寄存器不是自定义逻辑中的寄存器,是我的摄像头里面的寄存器,要给寄存器赋值,摄像头才能工作,而且积存器的地址不是连续的,请问该如何向积存器写值?
那就看说明书,我想说明书上可能会带有相关的说明。有两种方法解决:(1)自己写用户接口。(2)可以根据说明,可以向相应地址的寄存器写内容。一般说明书上有可能带有相应的操作指导。
爱,不是激情的随口
  
        情,不是瞬间的感动
NiosII IDE 中有定义好的宏,IORD和IRWR。
Stoneway Qi http://www.xinworks.com

关于iord,iowr

你说NiosII IDE 中有定义好的宏,IORD和IRWR。可我用的是apex开发板,他只支持nios1,我该咋办?nios1中也可以用iowr,iord吗?
..............
换板子吧
换板子吧,参加竞赛用Nios1,没什么戏的.
Stoneway Qi http://www.xinworks.com
只要支持NIOS 就可以做.
首先要考虑你是用的哪个软核,如果用没有DATA CASHE的软核.有两种方式:
一.直接向你需要写入的端口写就可以啦.如:
int *p;
p=0xff10;//寄存器地址
*P=0X12;//要写的值
二.利用IOWR宏.
*p=0x12;//要写的值
返回列表