首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]请教版主关于中断的问题

[求助]请教版主关于中断的问题

我用的是cw编程的
想请教一下版主我的程序在cw上用Full chip simulation方式调试可以
用TBDML方式总是跳不出RTI中断程序 这是怎么回事啊?
应该是RTI中断间隔比较短,单步运行时总是会进入RTI中断吧。你如果在别的地方设一个断点,也应该能断下来的。如果要单步运行的话,只能先暂时关中断。
海纳百川  有容乃大
我把时间调长了还是那个样子,郁闷的不行了
能不能帮我看看程序啊 谢谢各位大侠!!!!
我用的是清华的dg128的开发板
#include /* common defines and macros */
#include /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

int k,l;

int PWM1(int ad)
{
int ux;
PWME_PWME1 = 0x01;
PWMPRCLK = 0x04;
PWMCLK=0x03;
PWMSCLA=20;
PWMPOL_PPOL1 =0x01;
PWMCNT1 = 0;
PWMPER1 = 255;
ux=15+ad;
PWMDTY1 = ux;
}

PWM0(int add){
int us;
PWME_PWME0 = 0x00;
PWMPRCLK = 0x04;
PWMCLK=0x03;
PWMSCLA=20;
PWMPOL_PPOL0 =0x01;
PWMPER0 = 255;
PWMCNT0 = 0;
PWME_PWME0 = 0x01;
us=20+add ;
PWMDTY0 =us;

}

void findway(void) {
switch(PORTA)
{
case 0x40:k=-4,l=30,PORTB=0XFD;break; //-6
case 0x20:k=-2,l=20,PORTB=0XFB;break; //-4
case 0x10:k=-1,l=10,PORTB=0XF7;break; //-2
case 0x08:k=0,l=0,PORTB=0XEF;break; //0
case 0x04:k=1,l=10,PORTB=0XDF;break; //2
case 0x02:k=2,l=20,PORTB=0XBF;break; //4
case 0x01:k=4,l=30,PORTB=0X7F;break; //6
default: k=k,PORTB=0X00;
}
}

void MCU_init(void)
{

RTICTL = 0xE4;
CRGFLG = 0x80;
CRGINT = 0x80;
}

void interrupt RTI_Int()
{
CRGFLG=0x80;
PWM0(k);

}
void main(void) {
MCU_init();
EnableInterrupts;
for(;;) {
findway();
PWM1(l);
}
}
你把中断放入非分页地址了吗?中断地址定义了吗?把整个project打包贴出来吧。
海纳百川  有容乃大
我的project 辛苦了版主
http://bbs.chinaecnet.com/uploadImages/project.rar
你现在的现象是什么?
海纳百川  有容乃大
pwm0口没有输出 怎么中断跳不出来
是不是不能把pwm输出程序放到里面啊!
我看到你在P&E_Multilink_CyclonePro_linker.prm里面添加了中断地址,但是在TBDML_linker.prm里面倒没有。你是用TBDML连接的吧?那应该修改TBDML_linker.prm文件。
海纳百川  有容乃大
郁闷啊
还是不行 是不是程序的寄存器的设置有问题啊 麻烦版主了
怎么不行呢?如果你在主循环中设置一个断点,断不下来吗?
海纳百川  有容乃大
用TBML时直接就进入中断程序里了 然后就跳不出来
算了 还是不麻烦版主了 太不好意思了 谢谢版主了啊
返回列表