|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
求助C6416不进中断-非常感激回复 |
作者:39010325 栏目:DSP技术 |
各位大侠,本人学DSP不久,遇到一个问题。 这问题已经折磨我接近一个月了: DSP 不响应外部中断。 具体描述如下: 我买了DSP的学习开发板,名为TMS320C6416 TEB,还是美国原装进口的。 上面用的DSP是TMS320C6416。 它的中断管脚有个外部接口,因此中断信号可由外部引入。 我将一个方波(频率为1秒)从此脚引入,来模拟中断信号。 我让开发板的C64初始化后就进入等待状态 — 指示灯闪烁。 在中断管脚4加上中断信号,在中断4服务程序内设断点, 但是死活无法进中断。不知为何。 C64的外部中断[4:7]管脚是和GPIO[4:7]复用的,但是我将GPIO关掉了, 使能的确实是外部中断[4:7], 先开中断4,再开NMI,再开GIE,再清IFR,这些都做了。 不知还有哪些问题,希望各位大侠赐教。本人非常感激。 附主程序和cmd文件。 主程序: 中断服务程序: ;intr.asm .ref _c_int00 .ref _ext_int4ser,_ext_int5ser,_ext_int6ser,_ext_int7ser .ref _time0_intser .GLOBAL _istb .sect ".vector" _istb: mvk _c_int00,b0 mvkh _c_int00,b0 b .s2 b0 nop 5 nop nop nop nop _nmi: nop b nrp nop 5 nop nop nop nop nop .space 0x40 int4ser: stw .d2 b0,*b15--[1] mvk _ext_int4ser,b0 mvkh _ext_int4ser,b0 b .s2 b0 ldw .d2 *++b15[1],b0 nop 5 nop nop int5ser: stw .d2 b0,*b15--[1] mvk _ext_int5ser,b0 mvkh _ext_int5ser,b0 b .s2 b0 ldw .d2 *++b15[1],b0 nop 5 nop nop int6ser: stw .d2 b0,*b15--[1] mvk _ext_int6ser,b0 mvkh _ext_int6ser,b0 b .s2 b0 ldw .d2 *++b15[1],b0 nop 5 nop nop int7ser: stw .d2 b0,*b15--[1] mvk _ext_int7ser,b0 mvkh _ext_int7ser,b0 b .s2 b0 ldw .d2 *++b15[1],b0 nop 5 nop nop .space 0x20 .space 0x20 .space 0x20 .space 0x20 .space 0x20 .space 0x20 int14ser: stw .d2 b0,*b15--[1] mvk _time0_intser,b0 mvkh _time0_intser,b0 b .s2 b0 ldw .d2 *++b15[1],b0 nop 5 nop nop .space 0x20 ----------------------------------------------------------- main函数: #include <c6x.h> extern cregister volatile unsigned int IER; extern cregister volatile unsigned int CSR; extern cregister volatile unsigned int IFR; #define EXTPOL 0x019c0008; #define GPEN 0x01B00000 #define GPDIR 0x01B00004 #define GPVAL 0x01B00008 #define GPPOL 0x01B00024 /* 中断服务程序 */ interrupt void time0_intser() { } interrupt void ext_int7ser() { } interrupt void ext_int6ser() { } interrupt void ext_int5ser() { } interrupt void ext_int4ser() { asm(" nop 5"); asm(" nop 5"); } void delay(); void main() { int *Addr; int TEMP; Addr = (int *)EXTPOL; *Addr=0x1;/* 0:Rising 1:falling edge */ /* External INT / GPIO innital */ Addr = (int *)GPEN; *Addr = 0x0000;/*di |
2楼: | >>参与讨论 |
作者: 39010325 于 2005/5/13 17:16:00 发布:
我的邮箱 我的邮箱是 pan39010325@yahoo.com.cn 感谢发邮件赐教 |
3楼: | >>参与讨论 |
作者: dsp5509 于 2005/5/14 22:37:00 发布:
建议你用CSL和DSP BIOS写一个简单的中断程序,挺方便的。 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |