[技术求助]

老是出现程序复位

[复制链接]
796|7
手机看帖
扫描二维码
随时随地手机跟帖
午夜粪车| | 2018-9-6 15:59 | 显示全部楼层
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
liliang9554|  楼主 | 2018-9-6 16:03 | 显示全部楼层


#include \"LF2407.H\"



void initial()                 //系统初始化程序

{

    asm(\" setc INTM\";

    *SCSR1=0x8104;

    *WDCR=0x0E8;

    *IMR=0x0002;

    *IFR=0x0FFFF;

    *MCRA=*MCRA&0x0FFFC;

    *PADATDIR=*PADATDIR|0x0301;   

}



void timer1()              //通用定时器1初始化程序

{  

   *T1CON=0x0802;

   *T1PR=0x4E20;

   *T1CNT=0x00;

   *EVAIMRA=*EVAIMRA|0x0100;

   *EVAIFRA=*EVAIFRA&0x0100;

}



void T1INT()                //定时器下溢中断处理程序

{ int flag;

   flag=*EVAIFRA&0x0100;

   if(flag!=0x0100)

   {

     asm(\" clrc INTM\";

     return;

   }   

   *T1CNT=0x00;

   *EVAIFRA=*EVAIFRA&0x0100;

   asm(\" clrc INTM\";

   return;

}



void main()                   //主程序

{ initial();

   timer1();

   asm(\" clrc INTM\");

   *T1CON=*T1CON|0x0040;

   while(1)

   {    }                        //等待中断

}   

使用特权

评论回复
dengdc| | 2018-9-6 16:06 | 显示全部楼层
最好借助仿真器来调试.

使用特权

评论回复
zhaoxqi| | 2018-9-6 16:09 | 显示全部楼层
"中断返回时,老是出现程序复位", 很多时候由于堆栈设置不足引起

使用特权

评论回复
huangchui| | 2018-9-6 16:13 | 显示全部楼层
由于中断函数和普通函数是不同的, 请用中断服务函数规范. 如:

void    interrupt    c_intimer() {}

使用特权

评论回复
jiajs| | 2018-9-6 16:16 | 显示全部楼层
应该是程序跑飞了吧;

使用特权

评论回复
liliang9554|  楼主 | 2018-9-6 16:21 | 显示全部楼层
嗯,预料中的结果,先结贴吧,多谢大家啦

使用特权

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

本版积分规则

950

主题

11568

帖子

6

粉丝