请问:在中断里可以调用 原先定义的函数吗?为什么小弟我 调用,就出现警告呢

请教:在中断里可以调用 原先定义的函数吗?为什么我 调用,就出现警告呢?
//功能:   SD2,SD3,SD4     显示      
//参数:   LedNumber表示是数码管的个数
//参数:   LedCoin   是显示的数码管内容

void   SD234Display(int   LedNumber   ,uchar8   *LedCoin)   //SD2,SD3,SD4   显示
{
       
    int   i;                           //数码管的个数
        int   j;                           //送出数据时的   8   次循环

    int     LedB;                   //真正的下标,是通过     Led   转换过来的
        uchar8     *Led595s;           //定义数码管内容指针
        uchar8     Led;                 //要显示的数字,也是   数组   Led595NoDot   或   Led595Dot   中被
                                                //选取元素的下标,不过这里得到的是字符
        uchar8       LedN;             //数组   Led595NoDot   或   Led595Do   中真正被选中的元素
       
       
          i   =   0;           //初始化   i   为   LedNumber   表示从字符串的最后一个开始处理,
                                              //也就是从最后一个开始输出
      Led595s   =     LedCoin   ;   //使   Led595   和     LedCoin   指向同一个地址

       
        while(i <LedNumber)       //当   i   小于   数码管个数
        {
             
                Led   =   *(Led595s+i);   //取出数据
                LedB   =   Led   -   '0 '   ;   //得到数组真正的下标     ,因为   Led   是   char   类型的
                i=i++;  
       
                //*****************************处理   Led   ****************
                LedN   =     Led595Dot[LedB];
               
            for   (j=0;   j <8;   j++)
                    {
                            if   (LedN   &   0x01)   //发送   1
                                      {
                                          CK1   =   0   ;    
                                  DIN2   =   1;