智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2509|回复: 2
打印 上一主题 下一主题

开定时器让for循环中的程序跑不了

[复制链接]

2

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
威望
260
贡献
84
兑换币
10
注册时间
2011-1-5
在线时间
5 小时
跳转到指定楼层
1#
发表于 2012-7-4 17:04:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 qqhengg 于 2012-7-4 17:11 编辑

    我遇到了一个很让我无法解释的问题,我在TIM初始化中用了一个脉冲累加,还有一个定时器中断。定时器采用的是溢出中断,主函数的for循环是点亮端口D的程序。最后,下载程序并且点击运行,结果显示各部分都正常,串口发送编码器采样值正常,LED正常,定时中断也正常,总之,和我预期的效果一样。   可问题是,当我把下载器拔掉直接用电池供电就不正常了,主函数中的for循环没有执行,也就是LED没有闪,但是其他部分都正常,串口还是正常发送。

   我检查了很久,电源绝对是没有问题的,我换了几种电源都不行,包括USB供电。最后无奈之下我注释了TIM初始化的语句,发现正常了(我的时钟频率是32M).现在我实在是有点不解,为什么用BDM的调试的时候可以,接上外接电源就不行了。
  求高手解答,谢谢!!!

  PS(TIM初始化程序):
void TIM_Init(void)           //函数作用:IOC(输入捕捉)初始化
{
    TIOS_IOS7 = 0;             //设置IOC7输入  
    OC7M_OC7M7 = 0;            //输出比较用(输入时无用)
    TCTL1_OM7 = 0;             //关闭输出
    TCTL1_OL7 = 0;                                    
    PACTL_PAEN = 1;            //使能输入捕捉的计数功能
    PACTL_PAMOD = 0;           //PACTL_PAMOD = 0与PACTL_PEDGE = 0共同确定下降沿捕捉
    PACTL_PEDGE = 0;           //PACTL_PAMOD = 0与PACTL_PEDGE = 0共同确定下降沿捕捉
    PACTL_PAOVI = 0;           //关闭溢出中断
    PACTL_PAI = 0;             //关闭输入捕捉中断
    TSCR1_TFFCA = 1;           //清除输入捕捉标志位
    PACNT = 0;                 //计数器清零

    TSCR2 = 0x87;          //定时器溢出中断部分
    TSCR1_TEN = 1;
    TFLG2_TOF = 1;
    TIE_C0I = 1;
    TFLG1_C0F = 1;
    TCNT = 65035;   
}


#pragma CODE_SEG NON_BANKED
void interrupt 16 Timer_ISR(void)
{
         ........ //相关代码
}


0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
78
威望
125
贡献
43
兑换币
0
注册时间
2012-3-15
在线时间
7 小时
毕业学校
长沙理工大学
2#
发表于 2012-7-7 10:25:24 | 只看该作者
是因为定时器的中断标志未能完全清除
回复 支持 反对

使用道具 举报

2

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
威望
260
贡献
84
兑换币
10
注册时间
2011-1-5
在线时间
5 小时
3#
 楼主| 发表于 2012-7-10 16:56:42 | 只看该作者
happyonolne 发表于 2012-7-7 10:25
是因为定时器的中断标志未能完全清除

哦,忘了告诉你,我在中断服务函数里面已经清除了中断标志位!
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-20 22:29 , Processed in 0.171169 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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