英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

标题: 函数调用问题----在中断函数和主函数中的多次调用 [打印本页]

作者: winnie    时间: 2009-3-27 14:25
标题: 函数调用问题----在中断函数和主函数中的多次调用
中断子程序和主函数都调用另一子函数的处理?

//延时子程序
void delay(unsigned char k)
{
  for(i=k;i>0;i--)
  {
   
   }
}

//键服务子程序
static void interrupt  keyserve()
{
   ........
    delay(64);                      //延时
  ........
}
///用PORTB管脚实现SPI方式
void spimodule(unsigned char DAdata)
{
   .....
   delay(32);         
.....
}

void man()
{
    .....
   spimodule(result);
   ......   
}
出现错误为:function _delay appears in multiple call grahs:rooted at _keyserve and _main
作者: winnie    时间: 2009-3-27 14:26
PICC声明允许重入的命令
在中断函数和被调用的子函数前都用以下声明

#pragma interrupt_level 1

void delay(unsigned char k)
{

...

}


#pragma interrupt_level 1

static void interrupt  keyserve()
{
   ........

    delay(64);                      //延时
  ........
}




欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/) Powered by Discuz! X3.2