找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 995|回复: 0
打印 上一主题 下一主题
收起左侧

求助各位大神,帮忙看下IAP15W4K58S4单片机最小系统程序出现下列错误的原因是什么?

[复制链接]
跳转到指定楼层
楼主
ID:657731 发表于 2021-11-18 15:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序要实现的功能如下:

//首先,把二维数组Color_Library中的[9][0~7]的数据,赋值给一维数据WsDat[0~103],再调用显示函数Display_Color(WsDat[c]);发送到对应的LED灯珠上。
//然后,把二维数组Color_Library中的[10][0~7]的数据,重新赋值给一维数据WsDat[0~103],再调用显示函数Display_Color(WsDat[c]);发送到对应的LED灯珠上。
C51程序如下所示,我试着改了三种不同的书写方式,只有第三种才能正确运行。请各位大神帮忙看下,为什么会出现下述情况!


//第一种写法,如下所示;在IAP15W4K58S4最小系统中运行出错。LED灯珠无显示。
void WaterLampToColor28()     
{
    unsigned char a,b,c,d;
    for(d=0;d<2;d++)        
    {   
        for(a=0;a<13,a++)                  
        {        
            for(b=0;b<8;b++)
            {            
                WsDat[b+a*8]=Color_Library[d+9][b ];            
            }
        }
        
        for(c=0;c<LED_num;c++)         
        {        
            Display_Color(WsDat[c]);  
        }  
        Delay_Xms(7);            
    }
}

//如下所示,第二种书写方式,在IAP15W4K58S4最小系统上运行仍然错误。LED灯珠无显示。

void WaterLampToColor28()     
{
    unsigned char a,b,c;
    for(a=0;a<13;a++)
    {        
        for(b=0;b<8;b++)
        {            
            WsDat[b+a*8]=Color_Library[9][b ];            
        }
    }   
    for(c=0;c<LED_num;c++)         
    {        
        Display_Color(WsDat[c]);  
    }  
    Delay_Xms(7);            
   
    for(a=0;a<13;a++)
    {        
        for(b=0;b<8;b++)
        {            
            WsDat[b+a*8]=Color_Library[10][b ];        
        }
    }
   
    for(c=0;c<LED_num;c++)         
    {        
        Display_Color(WsDat[c]);  
    }  
    Delay_Xms(7);


//第三种书写方式,在IAP15W4K56S4最小系统上运行正常。


void WaterLampToColor28()     
{
    unsigned char a,b,c,d,e,f;
    for(a=0;a<13;a++)
    {        
        for(b=0;b<8;b++)
        {            
            WsDat[b+a*8]=Color_Library[9][b ];        
        }
    }
   
    for(c=0;c<LED_num;c++)         
    {        
        Display_Color(WsDat[c]);  
    }  
    Delay_Xms(7);   
   
   
    for(d=0;d<13;d++)
    {        
        for(e=0;e<8;e++)
        {            
            WsDat[e+d*8]=Color_Library[10][e];        
        }
    }
   
    for(f=0;f<LED_num;f++)         
    {        
        Display_Color(WsDat[f]);  
    }  
    Delay_Xms(7);   
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表