2814|0

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

怎样配置一个DSP的GPIO的输入输出? [复制链接]

1)、使能通用输入输出端口外设(GPIO)。

2)、配置相应GPIO口为普通输入输出口(I/O复用中选择复用功能)。

3)、配置相应GPIO口为输入。

4)、使能GPIO BANK中断。

5)、设置管脚中断触发类型。

6)、映射中断并注册中断服务函数。

GPIOIntTypeSet(SOC_GPIO_0_REGS, 7, GPIO_INT_TYPE_FALLEDGE); // 配置 USER0 KEY GPIO0[6] 为下降沿触发

GPIO_INT_TYPE_BOTHEDGE); // 配置USER1 KEY GPIO6[1] 为上升沿及下降沿触发

// 使能 GPIO BANK 中断

    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);    // USER0 KEY GPIO0

    GPIOBankIntEnable(SOC_GPIO_0_REGS, 6);    // USER1 KEY GPIO6

         // 注册中断服务函数

         IntRegister(C674X_MASK_INT4, USER0KEYIsr);

         IntRegister(C674X_MASK_INT5, USER1KEYIsr);

         // 映射中断到 DSP 可屏蔽中断

         IntEventMap(C674X_MASK_INT4, SYS_INT_GPIO_B0INT);

         IntEventMap(C674X_MASK_INT5, SYS_INT_GPIO_B6INT);   // SYS_INT_GPIO_B6INT中断事件(如下:)

         // 使能 DSP 可屏蔽中断

         IntEnable(C674X_MASK_INT4);

         IntEnable(C674X_MASK_INT5);

7)、使能DSP中断。

IntDSPINTCInit();   // 初始化 DSP 中断控制器

         IntGlobalEnable();  // 使能 DSP 全局中断

中断服务函数:

    GPIOBankIntDisable(SOC_GPIO_0_REGS, 0);  // 禁用 GPIO BANK 0 中断

IntEventClear(SYS_INT_GPIO_B0INT);      // 清除 GPIO BANK 0 中断状态

………………  ;        //执行短小的中断函数。

    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);  // 使能 GPIO BANK 0 中断

中断类型:

1)、复位中断(RESET)优先级最高

2)、不可屏蔽中断/异常:所有软件中断和两个外部中断RS、NMI。

3)、12个可屏蔽硬件中断(INT4-INT15)  12个事件中断源。

4)、可屏蔽硬件异常(EXCAP)。

事件:0-127个独立事件和组合事件(Event Combiner)

0~127个独立中断事件定义在interrupt.h头文件中: TimerInterrupts、Syscfg Interrupts、PRU Interrupts、EHRPWM Interrupts、EDMA Interrupts、EMU Interrupts、IDMA Interrupts、MMCSD Interrupts、USB Interrupts、SATA Interrupts、EMAC Interrupts、HPI Interrupts、I2C Interrupts、SPI Interrupts、UART Interrupts、GPIO Interrupts、ECAP Interrupts、EMIF Interrupts、DDR Interrupts、MCASP Interrupts、RTC Interrupts、PSC Interrupts、LCD Interrupts、MCBSP Interrupts、UPP Interrupts、VPIF Interrupts、INTC Interrupts、EMC Interrupts、PMC Interrupts、UMC Interrupts、PDC Interrupts、SYS Interrupts、DMC Interrupts、

组合事件Event Combiners:


中断事件选择

中断错误事件

中断向量表(功能:在相应中断发生后,跳转到相应的地址,执行相应的指令。)

1、  ISFP(interrupt service fetchpacket)中断服务取指包

2、  最多8条32位指令/14条紧凑指令(Compact Instance)

3、  中断向量表可以储存在DSP存储器的任何存储空间,只要满足入口地址对齐到1K字节即可。

点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
电源解决方案和技术 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表