搜索
bottom↓
回复: 2

马老师啊,您一定要帮帮我,帮忙看下我的M8中断问题!

[复制链接]

出0入0汤圆

发表于 2007-9-21 14:14:09 | 显示全部楼层 |阅读模式
我的程序设计中用T2每秒中断,修改全局变量标志,在主程序中实现数据采集,程序运行几个月没问题,最近突然数据采集不再进行,每次发送的数据都是同一个值,程序中判断如果每次都是同一个数据输出,那么程序执行的就是数据采集没有进行,请高手指点。是否我的全局变量标志定义不对,看过一些介绍,对于中断内使用的全局变量需用volatile进行定义,不知道是该原因造成的,如果定义不对的话,怎么程序能执行好几个月都没问题呢?  
unsigned char   air;   
unsigned char   rain;  
unsigned char   wind;  
unsigned char   time_ovf;  
int   Tn;              
interrupt [TIM2_OVF] void time2_ovf_isr(void)        //Time2        1s Interrupt  
{                                    
        #asm("sei")   
        TCNT2=0x0B;           //设定T2初值            
           time_ovf++;           
        if(time_ovf>3)//1秒定时操作开始  
        {                        
             time_ovf=0;         
             Tn++;     
                if((Tn%60)==38)   
             {  rain=1;}   

                 wind=1;         
                                                
                if((Tn%10)==1 || (Tn%10)==6)  
                {  air=1; }   
         
         }//1秒定时操作结束        
}   
windtest()  
{    ....  
     wind=0;  
     ...  
}  
airtest()  
{    ....  
     air=0;  
     ...  
}  
raintest()  
{    ....  
     rain=0;  
     ...  
}  
main{  
           .....  
        TCCR2=0x07;          //1024分频  
        TCNT2=0x0B;     //设定T2初值11,245次后溢出  
        TIMSK=0x40;        //T2溢出中断使能   
        air=0;   
        wind=0;  
        rain=0;  

        sleep_enable();   
        while(1)  
        {                                                     
            if(wind)  
            {  
                windtest();   
            }                        
            if(rain)  
            {   raintest(); }      
            if(air)  
            {   
                airtest();   
            }              
                 
            idle();   
            #asm("sei")   
        }   

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2007-9-23 13:46:50 | 显示全部楼层
马老师没空赐教啊?真的很困惑的这个问题,还请马老师抽空帮忙解惑,先谢谢了

出0入0汤圆

发表于 2007-9-23 23:27:09 | 显示全部楼层
程序能执行好几个月了,怎么怀疑中断有问题呢?

   
中断内使用的全局变量需用volatile进行定义,没有道理,至少在ICCAVR和CVAVR中不必这样定义。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 16:37

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

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