查看: 3683|回复: 0

NIOS II的 PIO

[复制链接]

该用户从未签到

发表于 2007-8-24 17:22:43 | 显示全部楼层 |阅读模式
分享到:
NIOS II的 PIO
PIO模块也作为SOPC Builder库中的一个组件,可以是1-32位的并行接口,有多种配置选项,比如输入\输出\双向\触发方式(若用于中断的话)
        其相关的寄存器如下:
                  数据寄存器 data
                 方向寄存器 direction
                中断允许寄存器 interruptmask
                边沿捕获寄存器(edgecapture) (RISING.FALLING.ANY)
PIO的应用还是比较简单的,一般作为NIOS 与外部电路(还是FPGA内)的接口,比如数据\中断控制等等,下面贴上PIO的一些设置项,同样在system.h头文件中,几乎所有的设置都可以在 system.h和PTF文件中找到原型.
#define PIO_NAME "/dev/pio"
#define PIO_TYPE "altera_avalon_pio"
#define PIO_BASE 0x00001000
#define PIO_SPAN 16
#define PIO_DO_TEST_BENCH_WIRING 0
#define PIO_DRIVEN_SIM_VALUE 0x0000
#define PIO_HAS_TRI 0                
#define PIO_HAS_OUT 1
#define PIO_HAS_IN 0
#define PIO_CAPTURE 0
#define PIO_EDGE_TYPE "NONE"
#define PIO_IRQ_TYPE "NONE"
#define PIO_FREQ 50000000
我想上述各个选项的含义就不多说了,应该很好理解,下面贴一个当时写过的一个PIO中断控制程序,求大家批评.
#i nclude "altera_avalon_pio_regs.h"
 IOWR_ALTERA_AVALON_PIO_IRQ_MASK(BUTTON_PIO_BASE, 0xf);
 alt_irq_register(BUTTON_PIO_IRQ,edge_capture_ptr,handle_button_interrupts);
void handle_button_interrupts()
{}
大概好象是这个样子的,不是记得很清楚了,仅供参考
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条



手机版|小黑屋|与非网

GMT+8, 2024-12-26 00:20 , Processed in 0.115174 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.