Atmega16返回long型数据时高位出错

2019-03-24 20:22发布

ulong avg_1(ulong p[],ulong data)
    {
        uchar h;
        ulong sum=0;
        for(h=9;h>0;h--)
            {
                p[h]=p[h-1];
                sum+=p[h];
            }
        p[0]=data ;
        sum=sum+p[0];
                sum=sum/10ul;
                //uart_txchar((uchar)(sum>>16));
                //uart_txchar((uchar)(sum>>8));
                //uart_txchar((uchar)sum);
               
                return   sum;
    }
代码如上,主要问题是调用此函数时,返回值的高位不对,(在函数内部用串口调试是正常的,即屏蔽的代码),编译环境为icc7.22,望各位大侠赐教,谢谢。

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
dcexpert
1楼-- · 2019-03-24 23:41
这个很容易通过仿真解决,用软件仿真或者硬件仿真都行。

一周热门 更多>