Board logo

标题: IRQ中断及调试问题[求助] [打印本页]

作者: purplewpp    时间: 2006-9-13 14:10     标题: IRQ中断及调试问题[求助]

大家好:


   我用的是MC9S08AW32芯片,我需要用到IRQ 中断, 所以设置为上升沿触发, 产生中断。


用来中断的信号是220V电源波型,  改为矩形波。 


     但是加入IRQ的中断以后, 我在调试中, 单步运行,有时就多次反复 进入IRQ中断。


    我想问:为什么上升沿触发中断, 要进入那么多次的IRQ 中断, 这很影响我用单步运行调试。


  


  初始化程序:                                       // IRQSC: IRQIE=0
 IRQSC &= (unsigned char)~0x03;     // Disable IRQ Interrupt ,

                                      //IRQMOD=0,IRQ event of rising edges only
                                     // IRQSC: IRQPE=1,IRQMOD=0 
 IRQSC |= (unsigned char)0x30;      // raising trigger                              


 IRQSC |= (unsigned char)0x04;                              
                                     // IRQSC: IRQIE=1 
  IRQSC |= (unsigned char)0x02;      // Enable interrupts


中断程序:


interrupt void IRQ(void)
 {
  
    asm SEI;
 
    IRQSC_IRQACK = 1;    //clear intrupt 
    
    OutPut.flag_irq = 1;//这只是我程序中的一个标志位
                        
    asm CLI;
   
  }


请大家帮帮忙 , 谢谢。
   

[此贴子已经被作者于2006-9-13 14:10:05编辑过]


作者: strongchen    时间: 2006-9-13 14:45

1.在中断程序里无需关、开中断,CPU已经自动这么做了。
2.对IRQ信号进行滤波处理。
作者: purplewpp    时间: 2006-9-13 15:54


谢谢!
作者: guantingwei    时间: 2006-9-13 19:18

顺带问一下,CW中有没有判读IRQ引脚电平的宏?
还是只能嵌入汇编?
谢谢
作者: strongchen    时间: 2006-9-14 09:29

有。请看CW08 5.1安装目录下的《Compiler_HC08.pdf》文档的第413页。
作者: guantingwei    时间: 2006-9-14 17:45

还需要什么设置或者是加入什么文件才能使用哪些函数或宏?
直接使用好像不能识别
作者: strongchen    时间: 2006-9-15 10:10

如果是用引导生成的 C project,应该是可以直接使用的。
作者: guantingwei    时间: 2006-9-15 12:52

帮助中倒确实没有说要做什么设置或加入什么文件
我也是再向导生成的project里(HC908KL3),使用__isflag_int(),编译时提示未定义
C1801: Implicit parameter-declaration for ‘__isflag_int()’
作者: strongchen    时间: 2006-9-15 18:00

参考这个帖子:

http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=50536&ID=50536




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0