搜索
bottom↓
回复: 5

请教LPC1114中断哪里设置错了

[复制链接]

出0入0汤圆

发表于 2011-5-2 16:12:05 | 显示全部楼层 |阅读模式
/*********************************************************************************************************
** Function name:       timer1Init
** Descriptions:        32位定时器1初始化函数
** input parameters:    无
** output parameters:   无
** Returned value:      无
*********************************************************************************************************/
void timer1Init (void)
{
    SYSAHBCLKCTRL |= (1ul << 10);                                        /*  打开定时器模块              */
    //IOCON_PIO1_0   = PIO1_0_CON;
   
    TMR32B1IR      = 1;
    TMR32B1PR       = 0;        /* 设置分频系数    */
    TMR32B1MCR     = 3;        /* 设置MR0 匹配后复位TC  */
             /* 并产生中断     */
    TMR32B1MR0     = 0x0E4E1C00;    //FAHBCLK / 1;      /* 设置中断时间    */
    TMR32B1TCR     = 0x01;       /* 启动定时器     */
   
   
    zyIsrSet(NVIC_TIMER32B1, (unsigned long)timer1Isr, PRIO_TWO);       /*  设置外部中断并使能          */
}


经过以上初始化之后,仿真发现并没有进入timer1Isr,而是进入了以下中断:

/*********************************************************************************************************
** Function name:           defaultVectorHandle
** Descriptions:            默认异常处理程序
** input parameters:        none
** output parameters:       none
** Returned value:          none
*********************************************************************************************************/
void defaultVectorHandle (void)
{
#ifdef DEBUG
    while (1);
#else
    zyReset(ZY_HARD_RESET);
#endif                                                                  /*  DEBUG                       */
}


请问是哪里设置错了,导致没有进入正确的中断函数。

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入18汤圆

发表于 2011-5-2 19:15:39 | 显示全部楼层
ZLG 的代码模板吧   ZLG 总是喜欢搞出一套自己的 头文件  

虽然我常常用 LPC1114

但是对ZLG的代码模板 说句 看不懂

出0入0汤圆

发表于 2011-5-2 19:50:19 | 显示全部楼层
回复【1楼】dengxiaofeng 天下的人
zlg 的代码模板吧   zlg 总是喜欢搞出一套自己的 头文件   
虽然我常常用 lpc1114  
但是对zlg的代码模板 说句 看不懂
-----------------------------------------------------------------------

我绝对的赞同1楼的说法,我也是常常在用LPC1114,但是我基本上是不用ZLG提供的代码模板的,自己已经在KEIL MDK环境下调试出来各个功能模块了,那样用起来很顺手。

出0入0汤圆

 楼主| 发表于 2011-5-3 09:09:54 | 显示全部楼层
求救求救,捯饬了一晚还是没搞定

出0入0汤圆

发表于 2011-5-3 09:19:02 | 显示全部楼层
zyIsrSet这个函数你看过没?
这句:
#if VECTOR_TABLE_IN_FLASH == 0
    ((unsigned long *)VTOR)[uiChannel] = ulFunction;
#endif
这是设置中断向量,但是有个条件宏  但是这个宏被定义为
#define VECTOR_TABLE_IN_FLASH       1  
意思是  这个函数不能设置中断向量表,只能设置优先级和通道

所以需要手动设置中断向量 在vector_cfg.h中
#define FMC_IRQ_Handle                                                        defaultVectorHandle             /* 68 RESERVED                  */
#define PIOINT3_IRQ_Handle                                          GPIOIsr (这个就是自己的,gpio中断)                        /* 69 PIOINT3                   */
#define PIOINT2_IRQ_Handle                                          defaultVectorHandle             /* 70 PIOINT2                   */
把相应的终端向量改为自己的函数名字

出0入0汤圆

发表于 2012-10-5 22:23:35 | 显示全部楼层
chenyuqiu 发表于 2011-5-2 19:50
回复【1楼】dengxiaofeng 天下的人
zlg 的代码模板吧   zlg 总是喜欢搞出一套自己的 头文件   
虽然我常常 ...

我现在也在用ZLG的TinyM0,用的是官方的库,但是没有用他们的库函数,自己写的。
现在我要用GPIO0_1-8这8个引脚的外部中断。但是遇到了问题:我在MDK里面调试的,在电平触发的时候,全速运行的时候,一下就进中断了。再边缘触发的时候,进不了中断。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 08:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表