winnie 发表于 2009-3-27 14:25:36

函数调用问题----在中断函数和主函数中的多次调用

中断子程序和主函数都调用另一子函数的处理?

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

//键服务子程序
static void interruptkeyserve()
{
   ........
    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:12

PICC声明允许重入的命令
在中断函数和被调用的子函数前都用以下声明

#pragma interrupt_level 1

void delay(unsigned char k)
{

...

}


#pragma interrupt_level 1

static void interruptkeyserve()
{
   ........

    delay(64);                      //延时
........
}
页: [1]
查看完整版本: 函数调用问题----在中断函数和主函数中的多次调用