MyFPGA Forum

标题: 求教,PIO的使用。 [打印本页]

作者: 飞猫    时间: 2010-5-19 23:46
标题: 求教,PIO的使用。
LED显示问题:

将 i 送到LED上显示,  下面第一个可以,但第二个就不行,为什么?

IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, i);
  
*(volatile unsigned int *)LED_BASE = i;
作者: yqzhang    时间: 2010-5-20 10:52
IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, i); 等同于
IOWR(LED_BASE,0,i);   //#incldue "io.h"   同时参考PIO Core
而IOWR定义如下:
#define IOWR(BASE, REGNUM, DATA) \
  __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA))
作者: 飞猫    时间: 2010-5-20 16:35
这个我知道,我是想直接访问端口寄存器,为什么不行?
作者: shun333    时间: 2010-7-1 11:13
LED_BASE的指向不对啊,所以错误
作者: shun333    时间: 2010-7-1 11:19
LED_BASE地址的值,包含了方向寄存器PIO_DIRECTION,中断寄存器PIO_IRQ_MASK以及边沿俘获寄存器。不同的指令对不同的寄存器进行操作,你直接对LED_BASE赋值,计算机不知道你是访问的哪个寄存器,或者你直接赋值把其它寄存器的值给改变了,这样当然不会成功




欢迎光临 MyFPGA Forum (http://www.myfpga.org/discuz/) Powered by Discuz! X3