5236|7

5

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

初学MB9BF506请教个关于定时器的问题 [复制链接]

我配置好的定时器,但是感觉就是没有进入中断服务函数,请教各位大神哪里出问题了,下面贴上我的代码

/*************************************************************************
* Function Name: Timer1Config
* Parameters: void
* Return: void
*
* Description:
*
*************************************************************************/
void Timer1Config(void)
{
  // FM3_DTIM->TIMER1INTCLR = 0xffffffff;
   FM3_DTIM->TIMER1LOAD = 500 * 80 / 256;  //TimerLOAD = Timer interval * FREQ / DIV
   /*Set Timer 1 Mode*/
   FM3_DTIM->TIMER1CONTROL = (0<<0) |     /*wrapping mode*/
                             (1<<1) |     /*1 = 32-bit counter*/
                             (2<<2) |     /*8 stages of prescale, clock is divided by 256*/
                             (1<<5) |     /*Interrupt Enable*/
                             (1<<6) |     /*Timer is in periodic mode*/
                             (1<<7) ;     /*Timer enabled*/  
   /*Enable Dual Timer Interrup*/
   NVIC_IntEnable(DTIM_QDU_IRQn);
   
}

void DT_QDU_IRQHandler(void)
{
    Vaule++;
    if(Vaule == 1000)
    {
        Vaule = 0;
        USER_LED_PDOR |= USER_LED_MASK;
        USER_LED_PDOR &= ~(0x1<<(led_index + 9));
        led_index++;
        if(led_index == 3) led_index = 0;
    }
    FM3_DTIM->TIMER1INTCLR = 1;
}

void Init_LED(void)
{
    /*Select CPIO function*/
    USER_LED_PFR  &= ~USER_LED_MASK;
    /* disable analog input */
    FM3_GPIO->ADE &= ~USER_LED_MASK;
    /*Set CPIO Pull-Up function*/
    USER_LED_PCR  |= USER_LED_MASK;
    /*Make led pins outputs*/
    USER_LED_DDR  |= USER_LED_MASK;
    USER_LED_PDOR |= USER_LED_MASK;
}

int main(void)
{
    //SystemInit();
    Init_LED();

  Timer1Config();   
  
  while(1)
  {
        ;
  }
   

}

[ 本帖最后由 执着的蚂蚁 于 2012-9-18 13:55 编辑 ]

uart.zip

2.78 MB, 下载次数: 24

启用定时器中断程序就无法工作

最新回复

抱歉,前段时间太忙没顾上回答你的问题。 你的程序中中断函数命名有问题。DT_QDU_IRQHandler在中断向量映射中找不到,故发生中断时不会执行你所谓的中断函数{  void DT_QDU_IRQHandler(void) }。 查一下工程里面的后缀 .S的文件,相信你能找到问题所在  详情 回复 发表于 2012-10-23 09:14

点评

抱歉,前段时间太忙没顾上回答你的问题。 你的程序中中断函数命名有问题。DT_QDU_IRQHandler在中断向量映射中找不到,故发生中断时不会执行你所谓的中断函数{ void DT_QDU_IRQHandler(void) }。 查一下工程里面  详情 回复 发表于 2012-10-23 09:14
点赞 关注
 

回复
举报

5

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
同志们,难道是我的问题太小白了? 求救啊
 
 

回复

2856

帖子

260

TA的资源

五彩晶圆(高级)

板凳
 
中断没有问题。
你的“Vaule”怎么定义的?

点评

Vaule 就在中断入口函数的文件里面定义的 int16_t Vaule; 刚才测试了下,发现调用这个TimerConfig 这个函数后,我在后面通过串口发送一串数据都发送不出来,但是不调用这个函数的话,都能正常发送  详情 回复 发表于 2012-9-18 13:08
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 板凳 ltbytyn 的帖子

Vaule 就在中断入口函数的文件里面定义的 int16_t Vaule;
刚才测试了下,发现调用这个TimerConfig 这个函数后,我在后面通过串口发送一串数据都发送不出来,但是不调用这个函数的话,都能正常发送
 
 
 

回复

2856

帖子

260

TA的资源

五彩晶圆(高级)

5
 
把你的工程传上来,我晚上回去看看

点评

传上来了  详情 回复 发表于 2012-9-18 13:58
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

6
 

回复 5楼 ltbytyn 的帖子

传上来了
 
 
 

回复

2856

帖子

260

TA的资源

五彩晶圆(高级)

7
 
 
 
 

回复

2856

帖子

260

TA的资源

五彩晶圆(高级)

8
 

回复 楼主 执着的蚂蚁 的帖子

抱歉,前段时间太忙没顾上回答你的问题。
你的程序中中断函数命名有问题。DT_QDU_IRQHandler在中断向量映射中找不到,故发生中断时不会执行你所谓的中断函数{  void DT_QDU_IRQHandler(void) }。
查一下工程里面的后缀 .S的文件,相信你能找到问题所在
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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