搜索
bottom↓
回复: 7

求助:MEGA128不停进T/C3中断

[复制链接]

出0入0汤圆

发表于 2017-7-23 22:35:57 | 显示全部楼层 |阅读模式
T/C3用作指示灯,1s闪一次。
初始化如下:
   //Run Flag
        //T=14745600/(2*1024*(14399+1))=0.5Hz
   TCCR3A=0x00;
        TCCR3B=0X0D;
        TCCR3C=0x00;
        OCR3A=0x383F;//14399
   ETIMSK|=BIT(4);               
       

   
   SREG|=BIT(7);

一旦执行完开总中断后,不停进入中断程序
中断程序定义:
#pragma interrupt_handler Tim3CompA1s:27

中断程序:
void Tim3CompA1s()
{       
   ETIFR|=BIT(4);
   if(homing_step1)
        {
           homing_cycle++;
                if(homing_cycle==Home_Cycle_Time)
                {
                   homing_step1=0;
                }
        }
        PORTA^=BIT(4);
}

百思不得姐,请大家帮忙。

出0入0汤圆

 楼主| 发表于 2017-7-23 22:38:53 | 显示全部楼层
中断程序中是否加ETIFR|=BIT(4);都是一样的

出200入2554汤圆

发表于 2017-7-24 00:48:08 | 显示全部楼层
莫非是拿仿真器在调试?都是有钱的娃

1. M103模式是不是勾掉了;

2. 怎么得来“一直进中断”这个判断的?莫非是仿真器看到的?
断点时,定时器可能不会停的

3. ICCAVR v7.22 + AvrStudio v4.12 跑这个程序没问题,

出0入0汤圆

 楼主| 发表于 2017-7-24 05:41:15 来自手机 | 显示全部楼层
就是用的仿真器啊。

出0入0汤圆

 楼主| 发表于 2017-7-24 05:42:27 来自手机 | 显示全部楼层
103没有选,单步运行的时候一开总中断就跳到中断函数那里。

出0入0汤圆

 楼主| 发表于 2017-7-24 08:38:34 来自手机 | 显示全部楼层
我用的iccavr7.22和avrstudio4.19

出200入2554汤圆

发表于 2017-7-24 16:36:03 | 显示全部楼层
用 M128L + JTAGICE 试了一遍,贴出来的代码没有故障:0.5Hz 闪烁正常,中断断点也不是一直进(2s后再次进入)。

估计是其他的故障耦合过来的,比如断点太多了、数组溢出、意外修改 T/C3 配置等等

出0入0汤圆

 楼主| 发表于 2017-7-25 19:49:00 | 显示全部楼层
确实是其他故障造成的。
T/C0输出脉冲,CTC模式的,不需要中断,结果开了中断,由于TC0没有分频,所以一开总中断就进T/C0匹配中断。
但是T/C0中断没有写,就掉到T/C3A中断了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 10:19

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

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