找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于单片机C语言数组的问题,为什么这个程序在电路中led4会随着led1和led2亮一下呢?

查看数: 2632 | 评论数: 11 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-7-2 16:33

正文摘要:

关于数组的问题,这个程序是让led1亮灭三次,led2亮灭三次,led1和led2同时亮四次; 在这个程序没有对led4进行控制,但是在实际电路中led4会随着led1和led2分别亮一下呢? 请教朋友们这是什么原因 单片机源程序 ...

回复

ID:332444 发表于 2019-7-3 16:21
ealoo 发表于 2019-7-3 12:01
感谢回复,我也是发完贴后发现程序引用数组的个数超出了范围。
那么,超出后,从第5个i开始引用的数组按 ...

你只描述了异常,没有说要实现什么功能,所以不知道如何回复了
ID:577104 发表于 2019-7-3 13:55
越界访问了
ID:517235 发表于 2019-7-3 12:04
2448289424 发表于 2019-7-2 23:32
uchar code Tab0[]={0x01,0x02,0x03}; P3=Tab0[0] led1;亮  P3=Tab0[1] led2;亮 P3=Tab0[2] led12;亮, ...

感谢回复,程序里只定义了一个uint i
ID:517235 发表于 2019-7-3 12:03
2448289424 发表于 2019-7-2 23:30
P3=Tab0    i为什么是跟for里面的i同一个,,不是直接uchar code Tab0[]={0x01,0x02,0x03};

感谢回复,程序前面只定义了一个uint i,所以就这么用了
ID:517235 发表于 2019-7-3 12:01
xianfajushi 发表于 2019-7-2 19:54
这程序后2个循环都超数组了

感谢回复,我也是发完贴后发现程序引用数组的个数超出了范围。
那么,超出后,从第5个i开始引用的数组按什么数据引用的呢?Tab0[]={0x02,0x02,0x02,0x03,0,0,0,0,0,0}这样好像也不对。
ID:517235 发表于 2019-7-3 12:01
lihaijun7781 发表于 2019-7-2 16:55
你初始化的数组 4, 你用到了 10 ,你已经越界了!

感谢回复,我也是发完贴后发现程序引用数组的个数超出了范围。
那么,超出后,从第5个i开始引用的数组按什么数据引用的呢?Tab0[]={0x02,0x02,0x02,0x03,0,0,0,0,0,0}这样好像也不对。
ID:207882 发表于 2019-7-2 23:32
uchar code Tab0[]={0x01,0x02,0x03}; P3=Tab0[0] led1;亮  P3=Tab0[1] led2;亮 P3=Tab0[2] led12;亮,不是这样? 为什么你的P3=Tab0[i]跟for里面的I同一个,,这个会不会到时找不Tab0[i]的值,就乱了,所以LED4会亮
ID:207882 发表于 2019-7-2 23:30
P3=Tab0[i]    i为什么是跟for里面的i同一个,,不是直接uchar code Tab0[]={0x01,0x02,0x03};
ID:332444 发表于 2019-7-2 19:54
这程序后2个循环都超数组了
ID:571958 发表于 2019-7-2 16:55
你初始化的数组 4, 你用到了 10 ,你已经越界了!

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

Powered by 单片机教程网

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