在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!)    创芯人才网--重磅上线啦!
查看: 9378|回复: 7

[原创] DM642的EXT_INT6作为外部中断源的问题

[复制链接]
发表于 2009-7-4 17:33:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 cjsb37 于 2013-4-29 08:54 编辑

因为EXT_INT6/GP6既可以当做外部中断6,也可以作为通用GPIO6,
当我把它用作中断的时候,还需要设置GP6的相关寄存器吗?
比如: GPIO_pinEnable(hGpio,GPIO_PIN6); GPIO_pinDirection(hGpio,GPIO_PIN6,GPIO_OUTPUT);等等
请各位高手给指点一下!





发表于 2009-7-6 00:53:21 | 显示全部楼层

广州推币机

主要经营:玛莉机、连线机、礼品机、娃娃机、摇摆机、大型娱乐机、模拟机、投币器、推币机及各类游戏机配件!
企业网站:www.sh220.cn    QQ:724645076   
联 系 人:陈丽军   电话:13485931220    15956345708   传真:020-83276765
发表于 2009-7-6 20:20:29 | 显示全部楼层
找到C6000的CSL文件,看看那里的例子
我开发6455,在CSL中可以找到INT的使用例子。

这里除了设置IO使能、方向、中断模式(电平,沿),还有中断的映射,中断的使能,大致这些就OK了。
 楼主| 发表于 2009-7-7 14:28:16 | 显示全部楼层
奇怪,我怎么没看到?请问能告诉我你在C6000的CSL中哪一页看到相关的例子吗?
 楼主| 发表于 2009-7-8 09:11:25 | 显示全部楼层
好像不需要设置IO使能、方向,我现在没有设置这些,也能进中断程序
 楼主| 发表于 2009-7-9 10:35:17 | 显示全部楼层

很奇怪

当我不加GPIO_RSET(GPEN,0x1c0)这句话时,很长一段时间内,不能进入中断,当我加了之后又好了,再把这句话注释掉以后,还照样能进入中断。
我看到C6000得gpio的资料上不是说当GPEN相应位为1时“ GPn pin is enabled as general-purpose input/output pin.”也就是说GPEN相应位为1时是作用通用输入输出管脚,而没说与中断有关系啊?

  IRQ_map(IRQ_EVT_EXTINT6,6);
    IRQ_map(IRQ_EVT_EXTINT7,7);
    IRQ_reset(IRQ_EVT_EXTINT6);
    IRQ_reset(IRQ_EVT_EXTINT7)//再请问程序中这四句话有用吗?

下面是我的程序:
#include <csl.h>
#include <csl_emifa.h>
#include <csl_irq.h>
#include <csl_chip.h>
#include "seeddm642.h"
#include "seeddm642_uart.h"
extern far void vectors();
static unsigned char flag ;
/*此程序可将四个采集口的数据经过Video Port0送出*/
void main()
{
/*Initialise CSL,初始化CSL库*/
CSL_init();
/*中断向量表的初始化*/
//Point to the IRQ vector table
    IRQ_setVecs(vectors);
    GPIO_RSET(GPEN,0x1c0);//
    GPIO_RSET(GPDIR,0x100);/*将GPIO做为输出*/
//GPIO_RSET(GPVAL,0x100);
    IRQ_globalDisable();
    IRQ_nmiDisable();
    IRQ_nmiEnable();
    IRQ_globalEnable();

    IRQ_map(IRQ_EVT_EXTINT6,6);
    IRQ_map(IRQ_EVT_EXTINT7,7);
    IRQ_reset(IRQ_EVT_EXTINT6);
    IRQ_reset(IRQ_EVT_EXTINT7);
   IRQ_RSET(EXTPOL,0x0E);//下降沿中断
    IRQ_enable(IRQ_EVT_EXTINT6);
    IRQ_enable(IRQ_EVT_EXTINT7);
  while(1);   
}
interrupt void ext_isr6()
{
   flag = 1;
}     
interrupt void ext_isr7()
{
   flag = 0;
}
发表于 2010-7-26 16:46:54 | 显示全部楼层
长见识了
发表于 2011-3-20 02:15:11 | 显示全部楼层
找到C6000的CSL文件,看看那里的例子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-13 08:38 , Processed in 0.039077 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表