打印

PIC1825FK80 中断变量不能增加

[复制链接]
1021|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lanyunsky|  楼主 | 2014-3-6 21:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yewuyi 于 2014-3-7 10:45 编辑

我最近使用PIC18F25K80的定时器0中断来定时两个不同的时间间隔,
定时器0 50ms中断一次。

volatile UINT8 CNT1=0;
volatile UINT8 CNT2=0;


中断服务程序里
{
CNT1++;
CNT2++
重装timer0初值;
if(CNT1〉100)
{
CNT1=0;
VM_Flag=1;
}

if(CNT2〉100)
{
CNT2=0;
V_Flag=1;

}

问题:,现在只有第一次满足条件时,VM_Flag和V_Flag会同时置1,从第二次以后,都是VM_Flag置一四次后,V_Flag才发生一次置1。

单步调试也是如此,
百死不得其解。



}
沙发
yewuyi| | 2014-3-7 10:49 | 只看该作者
1、中断服务程序里面只做计数器初始值加载,关于定时长度的判断放在中断外面的程序中。
2、你的中断标志有置位,但没有清除代码
3、你的初始值加载代码放置的位置也有问题。
4、。。。

使用特权

评论回复
板凳
阳光的味道3121| | 2014-3-7 13:04 | 只看该作者
没有清除中断标志位!

使用特权

评论回复
地板
兰天白云| | 2014-3-7 15:57 | 只看该作者
建议楼主画一画流程图

使用特权

评论回复
5
lanyunsky|  楼主 | 2014-3-18 22:48 | 只看该作者
问题解决好久了,来结贴。
原因是在使用数组时越界了。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

13

帖子

0

粉丝